Действия Unity SteamVR не работают в Build

Я пытаюсь переключиться на другую сцену, когда гарнитура удалена. Он уже работает в редакторе 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 headsetOnHead.

Actions.json (включая /actions/default/in/HeadsetOnHead) находится в папке сборки, и в журналах нет ошибок.

1 ответ

Переключение на SteamVR_LoadLevel вместо управления сценами решило проблему для текущей версии Unity.

Кроме того, сценарий был прикреплен к префабу SteamVR Player в сцене. Теперь он размещен на отдельном игровом объекте в сцене, чтобы избежать проблем, связанных с не разрушением при загрузке с префабом Player.

Другие вопросы по тегам