Unity SteamVR操作在构建中不起作用

时间:2019-03-01 08:46:52

标签: unity3d steamvr

取下耳机后,我试图切换到另一个场景。它已经在Unity编辑器中工作了,但是在构建中却没有。

设置:

  • Unity 2018.3.6f1
  • SteamVR Unity插件v.2.2.0
  • Vive Pro

此代码正在编辑器中工作:

using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
using Valve.VR;
public class EndGame : MonoBehaviour
{    
    [Tooltip("This action lets you know when the player has placed the headset on their head")]
    public SteamVR_Action_Boolean headsetOnHead = SteamVR_Input.GetBooleanAction("HeadsetOnHead");

void Update()
{
    if (SteamVR.initializedState != SteamVR.InitializedStates.InitializeSuccess)
    {
        return;
    }

    if (headsetOnHead != null)
    {
        if (headsetOnHead.GetStateDown(SteamVR_Input_Sources.Head))
        {
            StopCoroutine(RestartGame());
        }
        else if (headsetOnHead.GetStateUp(SteamVR_Input_Sources.Head))
        {
            StartCoroutine(RestartGame());
        }
    }
}
IEnumerator RestartGame()
{
    yield return new WaitForSecondsRealtime(3);
    SceneManager.LoadScene("Startscene", LoadSceneMode.Single);
    yield return null;
}
}

在编辑器中,\ actions \ default \ in \ HeadsetOnHead被引用为公共SteamVR_Action_Boolean耳机OnHead。

actions.json(包括/ actions / default / in / HeadsetOnHead)位于build文件夹中,并且日志未显示任何错误。

1 个答案:

答案 0 :(得分:0)

切换到SteamVR_LoadLevel而不是场景管理解决了当前Unity版本的问题。

此外,脚本已附加到场景中的SteamVR Player Prefab。现在,将其放置在场景中的另一个游戏对象上,以避免在播放器预制件加载时产生干扰的问题。