取下耳机后,我试图切换到另一个场景。它已经在Unity编辑器中工作了,但是在构建中却没有。
设置:
此代码正在编辑器中工作:
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文件夹中,并且日志未显示任何错误。
答案 0 :(得分:0)
切换到SteamVR_LoadLevel而不是场景管理解决了当前Unity版本的问题。
此外,脚本已附加到场景中的SteamVR Player Prefab。现在,将其放置在场景中的另一个游戏对象上,以避免在播放器预制件加载时产生干扰的问题。