Включить / отключить VR из кода

Как я могу настроить экран в стереоскопическом программном режиме в Unity для приложения, развернутого на Android-устройство?

Я хочу меню пользовательского интерфейса, в котором пользователь может переключаться между «режимом VR» и обычным режимом. Мне не нужен режим VR по умолчанию, поскольку он должен быть опцией во время выполнения. Я знаю, что в настройках сборки есть параметр «Виртуальная реальность», но опять же, я не хочу, чтобы это было включено по умолчанию.

Включить using UnityEngine.XR; на вершине.

Вызовите XRSettings.LoadDeviceByName("") с пустой строкой, за которой следует XRSettings.enabled = false; для отключения VR в функции запуска для отключения VR.

Когда вы захотите включить его позже, вызовите XRSettings.LoadDeviceByName("daydream") с именем VR, за которым следует XRSettings.enabled = true; ,

Вы должны ждать кадра между каждым вызовом функции. Это требует, чтобы это выполнялось с помощью функции корутина.

Кроме того, на некоторых устройствах VR вы должны перейти в Edit -> Project Settings -> Player и убедиться, что флажок « Поддерживаемая виртуальная реальность» отмечен (true), прежде чем это будет работать. Затем вы можете отключить его в функции «Пуск» и включить его, когда захотите.

EDIT :

Это, как известно, работает на некоторых устройствах VR, а не на всех устройствах VR. Хотя, он должен работать на Daydream VR. Полный образец кода:

 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)); } 

Вызовите EnableVR() чтобы включить vr и DisableVR() чтобы отключить его. Если вы используете что-либо другое, кроме daydream, передайте имя этого устройства LoadDevice функции LoadDevice функции EnableVR() .

Interesting Posts

Как я могу запускать и забывать процесс в Perl?

Где я могу указать название своей компании?

Как сделать снимок экрана с помощью элемента управления WPF?

Как установить соединение по коммутируемому соединению автоматически после загрузки + загрузки 90 МБ данных в Windows?

Есть ли способ предотвратить создание Mac файлов подчеркивания dots?

Не удалось открыть ресурс ServletContext

Тернарный (условный) оператор в C

Где бы вы разместили свой файл базы данных SQLite в приложении для iPhone?

JFrame.dispose () vs System.exit ()

Как избежать многого, если иначе условия

Как анализировать / форматировать даты с помощью LocalDateTime? (Java 8)

Когда вы экспортируете документ в формате pdf в Word 2010, какая разница между публикацией стандартного и минимального размера?

При правильном использовании Task.Run и при простом асинхронном ожидании

Невозможно использовать Интернет из-за подозрения на вредоносное ПО DNS

Как я могу написать общий class контейнера, который реализует данный интерфейс в C #?

Давайте будем гением компьютера.