输入处理 - scutrobotlab/RM2021_simulation GitHub Wiki

Unity 引擎提供了很多处理用户输入的工具。你可以在脚本中直接检测键盘、鼠标输入,也可以通过自定义输入映射,将输入映射为摇杆等。RM 模拟器可能会有一个不常见的输入处理需求:延迟模拟。由于实际比赛中存在图像和控制信号的传输延迟,需要刻意模拟输入的延迟来逼近真车手感。2021 模拟器的输入处理全部写在控制器里,后期出现了一些处理重复的问题,对输入延迟模拟的加入也非常不利,所以没有太多参考价值。下面提供一种抽象输入处理的思路:

编写一个全局单例的管理器,统一接受除 UI 输入外的所有输入事件。管理器将接收的所有事件放进一个输入队列,在这里可以做模拟延迟、模拟丢帧等处理。在队列的另一头,设计发布——订阅模式的接口。所有需要接收控制输入的控制器从管理器订阅输入事件,再分别进行处理。

输入处理的话题与网络同步的一致性有关系,后续会继续讨论。

⚠️ **GitHub.com Fallback** ⚠️