Краткое руководство по Google Cardboard для Unity

В этом руководстве показано, как использовать плагин Google Cardboard XR для Unity для создания собственных приложений виртуальной реальности (VR).

С помощью Cardboard SDK можно превратить мобильный телефон в платформу виртуальной реальности. Мобильное устройство может отображать 3D-сцены со стереоскопическим рендерингом, отслеживать и реагировать на движения головы, а также взаимодействовать с приложениями, определяя нажатие пользователем кнопки просмотра.

Для начала вам понадобится HelloCardboard — демо-игра, демонстрирующая основные функции Cardboard SDK. В игре пользователи исследуют виртуальный мир, находят и собирают предметы. В ней показано, как:

  • Настройте среду разработки
  • Загрузите и создайте демо-приложение
  • Отсканируйте QR-код устройства просмотра Cardboard, чтобы сохранить его параметры.
  • Отслеживайте движения головы пользователя
  • Создавайте стереоскопические изображения, устанавливая правильное искажение для каждого глаза.
  • Включайте и выключайте режим VR

Настройте среду разработки

Требования к программному обеспечению:

  • Unity 2021.3.44f1 или более поздняя версия
    • Обязательно включите поддержку сборки Android и iOS во время установки.
    • Обязательно установите патч версии 44f1 или более поздней.
  • Git должен быть установлен, а исполняемый файл git должен быть добавлен в переменную окружения PATH . Подробнее см. в документации по поддержке Git менеджера пакетов Unity .

Импортируйте SDK и создайте новый проект.

Выполните следующие действия, чтобы импортировать Unity SDK и создать новый проект.

  1. Откройте Unity и создайте новый 3D- проект.
  2. В Unity перейдите в Окно > Менеджер пакетов .
  3. Нажмите + и выберите Добавить пакет из URL git .
  4. Вставьте https://github.com/googlevr/cardboard-xr-plugin.git в поле ввода текста.
    Пакет следует добавить к установленным пакетам.
  5. Перейдите к пакету плагина Google Cardboard XR для Unity . В разделе «Образцы» выберите «Импортировать в проект» .
    Примеры ресурсов следует загрузить в Assets/Samples/Google Cardboard/<version>/Hello Cardboard .

Настроить сцену HelloCardboard

  1. Перейдите в Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes , выберите Add Open Scenes и выберите HelloCardboard , чтобы открыть пример сцены.
  2. Откройте меню «Слои» и выберите «Редактировать слои...» .
  3. Определите новый слой под названием «Интерактивный».
  4. Щёлкните по игровому объекту « Сокровище» , чтобы открыть окно «Инспектор». Установите для него слой «Интерактивный». Если появится всплывающее окно с вопросом, хотите ли вы установить интерактивный слой для всех дочерних объектов, нажмите «Да, изменить дочерние объекты».
  5. Нажмите «Игровой объект Player» > «Камера» > «CardboardReticlePointer» , чтобы открыть окно «Инспектор». В скрипте «Cardboard reticle pointer» выберите «Interactive» в качестве маски слоя взаимодействия с прицелом .

Настройте параметры сборки Android

Перейдите в Файл > Параметры сборки .

  1. Выберите Android и нажмите «Сменить платформу» .
  2. Выберите Добавить открытые сцены и выберите HelloCardboard .

Настройки плеера

Перейдите в Правка > Настройки проекта....

Настройте параметры разрешения и представления

Перейдите в меню «Проигрыватель» > «Разрешение и представление» .

  1. Установите ориентацию по умолчанию на Альбомная левая или Альбомная правая .
  2. Отключить оптимизированную регулировку кадров .

Настроить другие параметры

Перейдите в раздел «Проигрыватель» > «Другие настройки» .

  1. Выберите OpenGLES2 , OpenGLES3 или Vulkan или любую их комбинацию в графических API .
  2. В поле «Минимальный уровень API» выберите Android 8.0 'Oreo' (API level 26) или выше.
  3. Выберите API level 35 или выше в поле Целевой уровень API .
  4. Выберите IL2CPP в Scripting Backend .
  5. Выберите нужную архитектуру, указав ARMv7 , ARM64 или обе в поле «Целевые архитектуры» .
  6. Выберите Require в разделе «Доступ в Интернет» .
  7. Выберите Input System Package (New) в разделе Активная обработка входных данных .
  8. Укажите домен вашей компании в поле «Имя пакета» .
  9. Если в качестве графического API выбран Vulkan :
    • Снимите флажок Применить поворот дисплея во время рендеринга в настройках Vulkan .
    • Если версия Unity 2021.2 или более поздняя, ​​выберите ETC2 в поле Формат сжатия текстур .
  10. Если версия Unity — 2023.1 или более поздняя, ​​выберите Activity и снимите флажок GameActivity в Application Entry Point .

Настроить параметры публикации

Перейдите в раздел «Проигрыватель» > «Настройки публикации» .

  1. В разделе «Сборка» выберите Custom Main Gradle Template и Custom Gradle Properties Template .
  2. Добавьте следующие строки в раздел зависимостей 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'
    
  3. Добавьте следующие строки в Assets/Plugins/Android/gradleTemplate.properties :

      android.enableJetifier=true
      android.useAndroidX=true
    

Настройте параметры управления подключаемым модулем XR

Перейдите в раздел «Управление подключаемыми модулями XR» .

  1. Выберите Cardboard XR Plugin в разделе «Поставщики подключаемых модулей» .

Создайте свой проект

Перейдите в Файл > Параметры сборки .

  1. Выберите «Сборка» или выберите устройство и выберите «Сборка и запуск» .

Настройте параметры проекта iOS

Перейдите в Файл > Параметры сборки .

  1. Выберите iOS и нажмите «Сменить платформу» .
  2. Выберите Добавить открытые сцены и выберите HelloCardboard .

Настройки плеера

Перейдите в Правка > Настройки проекта....

Настройте параметры разрешения и представления

Перейдите в раздел «Проигрыватель» > «Разрешение и представление» .

  1. Установите ориентацию по умолчанию на Альбомная левая или Альбомная правая .

Настроить другие параметры

Перейдите в раздел «Проигрыватель» > «Другие настройки» .

  1. В описании использования камеры напишите Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
  2. В поле Минимальная целевая версия iOS напишите 12.0 .
  3. Укажите домен вашей компании в поле «Имя пакета» .
  4. Проверьте Top Edge , Left Edge и Right Edge в Отсрочке жестов системы на краях .

Настройте параметры управления подключаемым модулем XR

Перейдите в раздел «Управление подключаемыми модулями XR» .

  1. Выберите Cardboard XR Plugin в разделе «Поставщики подключаемых модулей» .

Создайте свой проект

Перейдите в Файл > Параметры сборки .

  1. Выберите «Сборка» или «Сборка и запуск» .

Повторно центрировать

Cardboard SDK позволяет центрировать устройство отслеживания положения головы с помощью Recenter() .

Чтобы опробовать приложение-пример, выполните следующие действия:

  1. Переместите устройство в положение, которое вы хотите центрировать (используйте как новую позу головы, смотрящей вперед).
  2. Удерживайте кнопку на устройстве Cardboard активной не менее трех секунд.
  3. Отпустите курок.
  4. Первоначальная поза теперь находится в направлении, куда указывает камера.

Включайте и выключайте режим VR

API управления плагином Unity XR позволяет включать и выключать режим виртуальной реальности для плагина Google Cardboard XR для Unity . Документация для конечного пользователя и примеры использования доступны в документации для конечного пользователя Unity.

Сцена VrMode в примере HelloCardboard демонстрирует базовое использование вышеупомянутого API. В этой сцене режим виртуальной реальности можно отключить, нажав кнопку «Выход». Кнопка X , и его можно включить снова, просто коснувшись любой точки экрана. Подробности о том, как это реализовано, см. в файле VrModeController.cs.

Следующие шаги