【问题标题】:How can I add button input from VR controllers in VRTK 4 Beta (Unity)?如何在 VRTK 4 Beta (Unity) 中添加来自 VR 控制器的按钮输入?
【发布时间】:2020-04-24 15:22:57
【问题描述】:
我想在我的 Unity 场景中使用按钮来触发动作,但是当我按下按钮时,我不知道如何调用相应的方法。我使用 VRTK 4(测试版),找不到任何有用的文档或回答问题。
【问题讨论】:
标签:
c#
unity3d
virtual-reality
vrtk
【解决方案1】:
VRTK 版本 4.0 测试版
- 从此表中查找“传统输入索引”以查找您设备的按钮:https://docs.unity3d.com/Manual/xr_input.html
- 检查相应的功能类型。
- 如果是按钮,则无需将其添加到“项目设置->输入”列表中。
- 如果是轴,则需要将其添加到“项目设置->输入”列表中(通过增加列表的大小)。查看其他(类似)按钮并复制方案:
Example Left Oculus Trigger:
Name: VRTK_Axis9_LeftTrigger *[Adapt your name]*
[...] Gravity: 0
Dead: 0.001
Sensitivity: 1
[...]
Type: Joystick Axis
Axis: 9th axis (Joysticks) *[Enter the index number you've looked up before]*
Joy Num: Get Motion from all Joysticks
在此处查看属性及其描述:https://docs.unity3d.com/Manual/class-InputManager.html
- 在 Unity 中创建一个新的游戏对象。
- 如果是按钮:
- 添加 Zinnia UnityButtonAction 脚本。将“Joystick [您查找的索引号]”设置为键码。
- 如果是 1DAxis:
- 并且你想要它的值(浮点数):
- 添加 VRTK UnityAxis1DAction 脚本。从“项目设置->输入”中设置名称
(在示例“VRTK_Axis9_LeftTrigger”中)作为轴名称。
- 并且您希望它被按下/释放(布尔):
- 添加 VRTK UnityAxis1DAction 脚本。从“项目设置->输入”中设置名称
(在示例“VRTK_Axis9_LeftTrigger”中)作为轴名称。
- 添加 Zinnia FloatToBoolean 脚本。在“Transformed”字段中,引用 GameObject 本身(按 + 添加)。选择 BooleanAction.Receive。
- 添加 Zinnia BooleanAction 脚本。在“Activated”字段中,引用应对按钮状态做出反应的 GameObject(按 + 添加)并选择在按下按钮时应调用的方法。 (使用方法重复“停用”字段,该方法应被调用,当
按钮被释放。)
- 如果是 2DAxis:
- 并且你想要它的值:
- 添加 VRTK UnityAxis2DAction 脚本。将 x 和 y 轴的“项目设置 -> 输入”中的名称设置为相应的 X 轴名称和 Y 轴名称。
我希望这可以帮助您开始使用新的 VRTK 版本!