В этом руководстве показано, как использовать плагин Google Cardboard XR для Unity для создания собственных приложений виртуальной реальности (VR).
С помощью Cardboard SDK можно превратить мобильный телефон в платформу виртуальной реальности. Мобильное устройство может отображать 3D-сцены со стереоскопическим рендерингом, отслеживать и реагировать на движения головы, а также взаимодействовать с приложениями, определяя нажатие пользователем кнопки просмотра.
Для начала вам понадобится HelloCardboard — демо-игра, демонстрирующая основные функции Cardboard SDK. В игре пользователи исследуют виртуальный мир, находят и собирают предметы. В ней показано, как:
- Настройте среду разработки
 - Загрузите и создайте демо-приложение
 - Отсканируйте QR-код устройства просмотра Cardboard, чтобы сохранить его параметры.
 - Отслеживайте движения головы пользователя
 - Создавайте стереоскопические изображения, устанавливая правильное искажение для каждого глаза.
 - Включайте и выключайте режим VR
 
Настройте среду разработки
Требования к программному обеспечению:
-  Unity 6000.0.23f1 или более поздняя версия
- Обязательно включите поддержку сборки Android и iOS во время установки.
 - Обязательно установите патч версии 23f1 или более поздней.
 
 -  Git должен быть установлен, а исполняемый файл 
gitдолжен быть добавлен в переменную окруженияPATH. Подробнее см. в документации по поддержке Git менеджера пакетов Unity . 
Импортируйте SDK и создайте новый проект.
Выполните следующие действия, чтобы импортировать Unity SDK и создать новый проект.
- Откройте Unity и создайте новый 3D- проект.
 - В Unity перейдите в Окно > Менеджер пакетов .
 - Нажмите + и выберите Добавить пакет из URL git .
 -  Вставьте 
https://github.com/googlevr/cardboard-xr-plugin.gitв поле ввода текста.
Пакет следует добавить к установленным пакетам. -  Перейдите к пакету плагина Google Cardboard XR для Unity . В разделе «Образцы» выберите «Импортировать в проект» .
Примеры ресурсов следует загрузить вAssets/Samples/Google Cardboard/<version>/Hello Cardboard. 
Настроить сцену HelloCardboard
-  Перейдите в 
Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes, выберите Add Open Scenes и выберите HelloCardboard , чтобы открыть пример сцены. - Откройте меню «Слои» и выберите «Редактировать слои...» .
 - Определите новый слой под названием «Интерактивный».
 - Щёлкните по игровому объекту « Сокровище» , чтобы открыть окно «Инспектор». Установите для него слой «Интерактивный». Если появится всплывающее окно с вопросом, хотите ли вы установить интерактивный слой для всех дочерних объектов, нажмите «Да, изменить дочерние объекты».
 - Нажмите «Игровой объект Player» > «Камера» > «CardboardReticlePointer» , чтобы открыть окно «Инспектор». В скрипте «Cardboard reticle pointer» выберите «Interactive» в качестве маски слоя взаимодействия с прицелом .
 
Настройте параметры сборки Android
Перейдите в Файл > Параметры сборки .
- Выберите Android и нажмите «Сменить платформу» .
 - Выберите Добавить открытые сцены и выберите HelloCardboard .
 
Настройки плеера
Перейдите в Правка > Настройки проекта....
Настройте параметры разрешения и представления
Перейдите в меню «Проигрыватель» > «Разрешение и представление» .
- Установите ориентацию по умолчанию на Альбомная левая или Альбомная правая .
 - Отключить оптимизированную регулировку кадров .
 
Настроить другие параметры
Перейдите в раздел «Проигрыватель» > «Другие настройки» .
-  Выберите 
OpenGLES2,OpenGLES3илиVulkanили любую их комбинацию в графических API . -  В поле «Минимальный уровень API» выберите 
Android 8.0 'Oreo' (API level 26)или выше. -  Выберите 
API level 35или выше в поле Целевой уровень API . -  Выберите 
IL2CPPв Scripting Backend . -  Выберите нужную архитектуру, указав 
ARMv7,ARM64или обе в поле «Целевые архитектуры» . -  Выберите 
Requireв разделе «Доступ в Интернет» . -  Выберите 
Input System Package (New)в разделе Активная обработка входных данных . - Укажите домен вашей компании в поле «Имя пакета» .
 -  Если в качестве графического API выбран 
Vulkan:- Снимите флажок Применить поворот дисплея во время рендеринга в настройках Vulkan .
 -  В поле Формат сжатия текстур выберите 
ETC2. 
 -  Выберите 
Activityи очиститеGameActivityв Application Entry Point . 
Настроить параметры публикации
Перейдите в раздел «Проигрыватель» > «Настройки публикации» .
-  В разделе «Сборка» выберите 
Custom Main Gradle TemplateиCustom Gradle Properties Template. Добавьте следующие строки в раздел зависимостей
Assets/Plugins/Android/mainTemplate.gradle:implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.gms:play-services-vision:20.1.3' implementation 'com.google.android.material:material:1.12.0' implementation 'com.google.protobuf:protobuf-javalite:3.19.4'Добавьте следующие строки в
Assets/Plugins/Android/gradleTemplate.properties:android.enableJetifier=true android.useAndroidX=true
Настройте параметры управления подключаемым модулем XR
Перейдите в раздел «Управление подключаемыми модулями XR» .
-  Выберите 
Cardboard XR Pluginв разделе «Поставщики подключаемых модулей» . 
Создайте свой проект
Перейдите в Файл > Параметры сборки .
- Выберите «Сборка» или выберите устройство и выберите «Сборка и запуск» .
 
Настройте параметры проекта iOS
Перейдите в Файл > Параметры сборки .
- Выберите iOS и нажмите «Сменить платформу» .
 - Выберите Добавить открытые сцены и выберите HelloCardboard .
 
Настройки плеера
Перейдите в Правка > Настройки проекта....
Настройте параметры разрешения и представления
Перейдите в раздел «Проигрыватель» > «Разрешение и представление» .
- Установите ориентацию по умолчанию на Альбомная левая или Альбомная правая .
 
Настроить другие параметры
Перейдите в раздел «Проигрыватель» > «Другие настройки» .
-  В описании использования камеры напишите 
Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters). -  В поле Минимальная целевая версия iOS напишите 
12.0. - Укажите домен вашей компании в поле «Имя пакета» .
 -  Проверьте 
Top Edge,Left EdgeиRight Edgeв Отсрочке жестов системы на краях . 
Настройте параметры управления подключаемым модулем XR
Перейдите в раздел «Управление подключаемыми модулями XR» .
-  Выберите 
Cardboard XR Pluginв разделе «Поставщики подключаемых модулей» . 
Создайте свой проект
Перейдите в Файл > Параметры сборки .
- Выберите «Сборка» или «Сборка и запуск» .
 
Повторно центрировать
 Cardboard SDK позволяет центрировать устройство отслеживания положения головы с помощью Recenter() .
Чтобы опробовать приложение-пример, выполните следующие действия:
- Переместите устройство в положение, которое вы хотите центрировать (используйте как новую позу головы, смотрящей вперед).
 - Удерживайте кнопку на устройстве Cardboard активной не менее трех секунд.
 - Отпустите курок.
 - Первоначальная поза теперь находится в направлении, куда указывает камера.
 
Включайте и выключайте режим VR
API управления плагином Unity XR позволяет включать и выключать режим виртуальной реальности для плагина Google Cardboard XR для Unity . Документация для конечного пользователя и примеры использования доступны в документации для конечного пользователя Unity.
 Сцена VrMode в примере HelloCardboard демонстрирует базовое использование вышеупомянутого API. В этой сцене режим виртуальной реальности можно отключить, нажав кнопку «Выход». 
 , и его можно включить снова, просто коснувшись любой точки экрана. Подробности о том, как это реализовано, см. в файле VrModeController.cs.
Следующие шаги
- Ознакомьтесь с рекомендациями по брендингу картона .