Habilitar / Deshabilitar VR del código

¿Cómo puedo configurar la pantalla en formato estereoscópico mediante progtwigción en Unity para una aplicación implementada en un dispositivo Android?

Quiero un menú UI donde el usuario pueda alternar entre el “modo VR” y el modo normal. No quiero el modo VR por defecto, ya que debería ser una opción en tiempo de ejecución. Sé que hay una configuración para “Realidad Virtual Soportada” en la configuración de comstackción, pero de nuevo, no quiero que esto esté habilitado por defecto.

Incluye el using UnityEngine.XR; en la cima.

Llame a XRSettings.LoadDeviceByName("") con una cadena vacía seguida de XRSettings.enabled = false; deshabilitar VR en la función de inicio para deshabilitar VR.

Cuando desee habilitarlo más adelante, llame a XRSettings.LoadDeviceByName("daydream") con el nombre de VR seguido de XRSettings.enabled = true; .

Debería esperar un cuadro entre cada llamada de función. Eso requiere que se haga una función de corutina.

Además, en algunos dispositivos de realidad virtual , debe ir a Editar -> Configuración del proyecto -> Reproductor y asegurarse de que la checkbox Compatible con realidad virtual esté marcada (verdadera) antes de que esto funcione. Luego puede desactivarlo en la función de Inicio y habilitarlo cuando lo desee.

EDITAR :

Se sabe que esto funciona en algunos dispositivos de realidad virtual y no en todos los dispositivos de realidad virtual. Aunque, debería funcionar en Daydream VR. Ejemplo de código completo:

 IEnumerator LoadDevice(string newDevice, bool enable) { XRSettings.LoadDeviceByName(newDevice); yield return null; XRSettings.enabled = enable; } void EnableVR() { StartCoroutine(LoadDevice("daydream", true)); } void DisableVR() { StartCoroutine(LoadDevice("", false)); } 

Llame a EnableVR() para habilitar vr y DisableVR() para deshabilitarlo. Si está utilizando algo que no sea soñar despierto, pase el nombre de ese dispositivo VR a la función LoadDevice en la función EnableVR() .