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

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

Вы можете использовать Cardboard SDK, чтобы превратить мобильный телефон в платформу VR. Смартфон может отображать 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 , выберите «Добавить открытые сцены» и выберите HelloCardboard , чтобы открыть образец сцены.
  2. Откройте меню «Слои» и выберите «Редактировать слои...» .
  3. Определите новый слой под названием «Интерактивный».
  4. Нажмите на игровой объект «Сокровище» , чтобы открыть окно инспектора. Установите для слоя значение «Интерактивный». Если появится всплывающее окно с вопросом, хотите ли вы установить интерактивный слой и для всех дочерних объектов, нажмите «Да, изменить дочерние объекты».
  5. Нажмите Player > Camera > CardboardReticlePointer GameObject, чтобы открыть окно инспектора. В сценарии «Указатель прицельной сетки Carboard» выберите «Интерактивный» в качестве маски слоя взаимодействия прицельной марки .

Настройка параметров проекта 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 в точке входа приложения .

Настройки публикации

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

  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. Укажите домен вашей компании в разделе «Имя пакета» .

Настройки управления плагинами 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 для получения подробной информации о том, как это выполняется.

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