SteamVR 2.0.1-如何使用OnTrigger / OnCollision进行交互

时间:2018-11-29 09:59:40

标签: unity3d virtual-reality openvr steamvr

最近,我开始更新我的VR应用程序以与SteamVR 2.0一起运行。我有一些依赖于碰撞的脚本,但是如果将碰撞器放在Vive控制器(手)上,则会干扰Valve的“ Throwable”脚本(即使它们是触发器),使得几乎90%的时间都无法捕获对象或当它们附着在“手”上时它们的重力是活动的。

我的问题是:如何重写下面的示例,使其与新的SteamVR 2.0的脚本兼容?现在,我只能制作类似的脚本来与手上的碰撞器或SteamVR的Throwable一起使用,而无需手上的碰撞器。我想在我的VR应用程序中同时进行两种交互。

private void OnTriggerStay(Collider other)
{
    if (other.gameObject.GetComponent<Hand>() == null)
    {
        return;
    }
    else
    {
        if (SteamVR_Input.__actions_default_in_GrabPinch.GetStateDown(SteamVR_Input_Sources.Any))
        {
            MethodOnTriggerDown();
        }
        else if (SteamVR_Input.__actions_default_in_GrabPinch.GetState(SteamVR_Input_Sources.Any))
        {
            MethodWhileHolding();
        }
        else if (SteamVR_Input.__actions_default_in_GrabPinch.GetStateUp(SteamVR_Input_Sources.Any))
        {
            MethodOnRelease();
        }
    }
}

先谢谢您。任何帮助将不胜感激。

0 个答案:

没有答案