为什么要“定位设备”
在 VR 项目里,同一个“动作”(如抓握/扳机)可能来自不同设备(左/右手柄、键盘模拟、手势设备等)。如果只关心“按下了没”,很容易写;但一旦要做“哪个设备触发了动作、左右手分别驱动不同动画/逻辑”,就必须“定位设备”。
本文总结两条实践路线:
- 路线 A(底层设备优先):
UnityEngine.XR.InputDevices
- 路线 B(动作优先):新版 Input System(
InputAction
/InputActionReference
)
路线 A:XR InputDevices(物理设备 → 动作)
思路:先从底层拿到物理设备,再读取它们的功能特征(characteristics)或 CommonUsages
,由此判断左右手、按钮值、摇杆值等。