目标是仅使用一个控制器进行传送。
应该通过Action Sets完成还是通过Event Trigger完成?我也找不到与Hand脚本中的控制器相关的任何特定内容。
使用操作集我应该使用单手选项并自定义哪些设置?那么,如何在 Inspector 中创建 I 字段?
非常感谢!
目标是仅使用一个控制器进行传送。
应该通过Action Sets完成还是通过Event Trigger完成?我也找不到与Hand脚本中的控制器相关的任何特定内容。
使用操作集我应该使用单手选项并自定义哪些设置?那么,如何在 Inspector 中创建 I 字段?
非常感谢!
尝试获取对您的控制器SteamVR_Behaviour_Pose
组件的引用,然后检查它是否是您想要进行传送的控制器。SteamVR_Input_Sources
是一个枚举,用于识别您的 vive 硬件。
public SteamVR_Behaviour_Pose pose;
if(pose.inputSource == SteamVR_Input_Sources.LeftHand)
{
//do stuff
}
小心点。我不太记得了,但我认为NullReferenceException
如果您尝试访问的硬件未连接,这可能会导致。
正如您已经想到的那样,您还可以使用ActionSet并为双手使用不同的动作。这也应该有效,我只是从未尝试过。
作为奖励:
public SteamVR_Action_Boolean action = SteamVR_Input.GetBooleanAction("YourActionName");
if (action.GetStateUp(pose.inputSource))
{
//do even more stuff
}
这就是您检查脚本中的操作的方式。我花了很长时间阅读文档来了解自己。
希望这可以帮助!