您好,我正在使用 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; }
}
建议您进行开发构建,以检查运行应用程序时可能出现的错误。