由于VRTK4的input在Unity2020中无法使用,在VRTK4开发VR3中,使用的是将bool转为float,这样能让人物移动,但是无法改变移动速度。
1.生成Input.UnityInputManager.1DAxisAction预设,在其脚本UnityInputManagerAxis1DAction.cs中可以看到,是Process()函数兼听事件
2.新建脚本UnityInputManagerAxisX.cs, 复制原来UnityInputManagerAxis1DAction.cs的代码,添加变量public SteamVRBehaviourVector2Action actionPosition;修改Process()函数
3.新建脚本UnityInputManagerAxisY.cs 同上操作,注意改成Value.y
4.生成两个预设Input.UnityInputManager.1DAxisAction,分别改名AxisActionX,AxisActionY,移除自带的UnityInputManagerAxis1DAction.cs脚本,分别添加新建的脚本,注意修改Source
5.在SteamVR Input添加一个Vctort2的兼听事件,并保存
6.打开绑定控制面板,绑定v2到触控板(这一步不会,看前面的文章)
7.新建空对象,拖入下图所示脚本,绑定事件
7.在AxisActionX和AxisActionY的脚本拖入V2Test
这样,就可以不通过InputManager的输入事件来控制人物移动了