如何为一个控制器禁用Teleport Steam VR / Unity

时间:2019-01-31 17:38:58

标签: unity3d virtual-reality steam steamvr

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

是通过动作集完成还是通过事件触发器完成? 我也没有在 Hand 脚本中找到与控制器相关的任何特定内容。

我应该使用动作集来使用每手选项并自定义哪些设置?然后,如何在检查器中创建“我”字段?

非常感谢!

1 个答案:

答案 0 :(得分:0)

尝试获取对控制器SteamVR_Behaviour_Pose组件的引用,只需检查它是否是您要与之进行传送的控制器即可。 SteamVR_Input_Sources是用于识别vive硬件的枚举。

public SteamVR_Behaviour_Pose pose;

if(pose.inputSource == SteamVR_Input_Sources.LeftHand)
{
    //do stuff
}

请小心。我不太记得,但是如果您要访问的硬件未连接,这可能会导致NullReferenceException

您也已经可以考虑使用 ActionSets 并用不同的双手进行操作。 应该也可以,但我从未尝试过。

作为奖励:

public SteamVR_Action_Boolean action = SteamVR_Input.GetBooleanAction("YourActionName");

if (action.GetStateUp(pose.inputSource))
{
    //do even more stuff
}

这就是你如何检查你的脚本操作。我花了很长时间阅读文档以了解自己。

希望这会有所帮助!