Skip to main content

输入

在 ClientSim 中,所有输入调用都在一个类中处理输入和发送事件。ClientSimInputManager 使用新的输入系统,支持事件驱动的输入。它使用 PlayerInput 组件根据下面显示的输入绑定来获取特定输入事件。由于新的 Unity 输入系统包默认不包含,且 Unity 需要特殊设置才能启用,所有对输入系统的引用都包装在 define 条件中,这可以防止导入到新项目时出错。

输入事件​

与 EventDispatcher 类似,InputManager 也有自己的事件,不同的系统可以直接监听。这些事件与 EventDispatcher 本身分开,因为所有输入事件都有相似的参数,并且还具有不通过事件广播但需要监听系统轮询获取更新轴值的输入值。

输入绑定​

输入系统还允许为不同的控制方案设置不同的绑定。请参见下面的包含绑定:键盘鼠标、游戏手柄和实验性 XR 控制器绑定。请注意,Unity 2019 中 InputSystem 内的 XR 输入绑定非常有限。InputManager 需要扩展以正确支持各种 VR 控制器。

UdonInput​

UdonInput 系统是 InputManager 预制体的一部分,它订阅 InputManager 中的适当事件,并轮询获取移动和视角输入的更新。由于 Unity 发送输入事件的时间以及 Udon 应接收输入事件的时间,所有基于按钮的输入都被排队并在稍后的帧中与移动和视角输入同时处理。这种排队和处理允许输入事件在 Udon 的 Update 方法被调用之后发生,类似于 VRChat 中的方式。