输入概述 - MRTK2
MRTK 中的输入系统允许你执行以下操作:
- 通过输入事件使用来自各种输入源的输入,例如 6 DOF 控制器、关节手或语音。
- 定义抽象操作,如“选择”或“菜单”,并将它们关联到不同的输入。
- 通过焦点和指针事件附加到控制器的设置指针,以驱动 UI 组件。
输入由输入数据提供程序(设备管理器)生成。 每个提供程序都对应于特定的输入源:Open VR、Windows Mixed Reality(WMR)、Unity 游戏杆、Windows 语音等。提供程序通过混合现实工具包组件中的已注册服务提供程序配置文件添加到项目中,并将在相应的输入源可用(例如,检测到 WMR 控制器或连接到游戏手柄)时自动生成输入事件。
输入操作是针对原始输入的抽象,旨在帮助将应用程序逻辑与产生输入的特定输入源隔离开来。 例如,可以定义“选择”操作并将其映射到鼠标左键、游戏手柄中的按钮和 6 DOF 控制器中的触发器,这非常有用。 然后,可以让应用程序逻辑侦听“选择”输入操作事件,而无需知道可以生成的所有不同输入。 输入操作在输入操作配置文件中定义,该配置文件位于混合现实工具包组件中的输入系统配置文件内。
控制器在检测到输入设备时由输入提供程序创建,并在这些设备丢失或断开连接时销毁。 例如,WMR 输入提供程序将为 6 DOF 设备创建 WMR 控制器,并创建 WMR 关节手控制器以管理关节手。 在输入系统配置文件中,可以通过控制器映射配置文件将控制器输入映射到输入操作。 由控制器引发的输入事件将包括关联的输入操作(如有)。
可向控制器附加指针,这些指针用于查询场景来确定具有焦点的游戏对象,并引发指针事件。 例如,行指针使用控制器姿势针对场景执行光线投射,以计算光线的原点和方向。 为每个控制器创建指针的设置在“输入系统配置文件”下的“指针配置文件”。
事件流。尽管可以直接在 UI 组件中处理输入事件,但建议使用指针事件,以保持实现与设备无关。
MRTK 还提供了几种便捷方法,以与设备无关的方式直接查询输入状态。 有关更多详细信息,请参阅访问 MRTK 中的输入状态。