Краткое руководство по 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 . Подробнее см. в документации Unity package manager git support docs.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Выберите OpenGLES2 , OpenGLES3 или Vulkan или любую их комбинацию в графических API .
  2. В поле «Минимальный уровень API» выберите Android 8.0 'Oreo' (API level 26) или выше.
  3. Выберите API level 33 или выше в поле Целевой уровень 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 позволяет включать и выключать режим VR для плагина Google Cardboard XR для Unity . Документация для конечного пользователя и примеры использования доступны в документации для конечного пользователя Unity.

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

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