0

目标是仅使用一个控制器进行传送。

应该通过Action Sets完成还是通过Event Trigger完成?我也找不到与Hand脚本中的控制器相关的任何特定内容。

使用操作集我应该使用单选项并自定义哪些设置?那么,如何在 Inspector 中创建 I 字段?

非常感谢!

4

1 回答 1

0

尝试获取对您的控制器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
}

这就是您检查脚本中的操作的方式。我花了很长时间阅读文档来了解自己。

希望这可以帮助!

于 2019-02-01T09:23:39.033 回答