Google Cardboard VR 在按下 VR 关闭按钮后关闭整个应用程序

问题描述 投票:0回答:1

您好,我正在使用 Unity 2022 和最新版本的 Google Cardboard VR,我正在尝试在 VR 和正常模式之间切换,但是当我在将视图切换回正常模式后按下关闭 VR 按钮时,它会关闭整个应用程序,我在脚本中进行了搜索与 VRController.cs 及其调用的函数相关,但我找不到任何有关 Application.Quit();

如何在不关闭应用程序的情况下关闭 VR? 这是脚本:

void Start()
{
    _mainCamera = Camera.main;
    Screen.sleepTimeout = SleepTimeout.NeverSleep;
    Screen.brightness = 1.0f;
 
}

void Update()
{
    
    if(_isVrModeEnabled && Api.IsCloseButtonPressed)
    {
        ExitVR();
    }
}
public void ToggleVR()
{
    if (_isVrModeEnabled)
    {
        ExitVR();
    }
    else
    {
        EnterVR();
    }
    // if (Api.HasNewDeviceParams())
    // {
    //     Api.ReloadDeviceParams();
    // }
}

private void EnterVR()
{
    StartCoroutine(StartXR());
    if (Api.HasNewDeviceParams())
    {
        Api.ReloadDeviceParams();
    }
}

private void ExitVR()
{
    StopXR();
}

private void StopXR()
{
    Debug.Log("Stopping XR...");
    XRGeneralSettings.Instance.Manager.StopSubsystems();
    Debug.Log("XR stopped.");

    Debug.Log("Deinitializing XR...");
    XRGeneralSettings.Instance.Manager.DeinitializeLoader();
    Debug.Log("XR deinitialized.");

    _mainCamera.ResetAspect();
    _mainCamera.fieldOfView = _defaultFieldOfView;
}

// Start is called before the first frame update
private IEnumerator StartXR()
{
    Debug.Log("Initializing XR...");
    yield return XRGeneralSettings.Instance.Manager.InitializeLoader();

    if (XRGeneralSettings.Instance.Manager.activeLoader == null)
    {
        Debug.LogError("Initializing XR Failed.");
    }
    else
    {
        Debug.Log("XR initialized.");

        Debug.Log("Starting XR...");
        XRGeneralSettings.Instance.Manager.StartSubsystems();
        Debug.Log("XR started.");
    }
}

private bool _isVrModeEnabled
{
    get { return XRGeneralSettings.Instance.Manager.isInitializationComplete; }
}
unity-game-engine virtual-reality google-cardboard google-vr
1个回答
0
投票

建议您进行开发构建,以检查运行应用程序时可能出现的错误。

© www.soinside.com 2019 - 2024. All rights reserved.