Поделиться через


Кроссплатформенность с использованием подключаемой системы пакета SDK XR для Unity

Первоначально разработка World Locking Tools велась для семейства устройств HoloLens с использованием API XR.WSA (приложение виртуальной реальности/AR Windows Store) Unity. Это стало частью того, что теперь известно как интерфейс Legacy XR в Unity (встроенная поддержка виртуальной реальности в Unity).

С тех пор в Unity была реализована собственная подключаемая архитектура XR, цель которой заключается в предоставлении кроссплатформенных абстракций, которые позволяют разработчикам получить доступ к общим функциям на доступных устройствах виртуальной реальности и AR.

На этом этапе перехода средство WLT поддерживало интерфейс Legacy XR для HoloLens и AR Subsystems/XR Plugin Management для кроссплатформенности. Следует отметить, что интерфейс Legacy XR считается устаревшим в Unity 2019 и не поддерживается в Unity 2020.

В настоящее время WLT поддерживает подсистемы AR с версией 2.X.Y для Unity 2019.4 (LTS) и управление подключаемым модулем XR версии 4.0.7 и более поздних версий для Unity 2020.3 (LTS). В последующих выпусках будет выпущена поддержка дополнительных версий.

Переключение WLT на целевой пакет SDK XR

Нацелить WLT на пакет SDK XR очень просто. Сначала настройте проект для использования подключаемой системы XR.

Если вы используете MRTK, следуйте данным инструкциям. Далее в этой статье приведены дополнительные советы и примечания.

Если вы не используете MRTK, следуйте этим немного более сложным инструкциям.

В любом случае вы получите установленную и включенную систему Unity XR Plug-in Management, в которой будет установлен и выбран подходящий для вашей платформы XR Plug-in provider.

После установки необходимых ресурсов измените тип подсистемы привязки в World Locking Context в сцене.

Автоматический выбор

При выполнении сценария Mixed Reality => World Locking Tools => Configure scene будет выбрана правильная подсистема привязки в зависимости от настройки проекта и сцены. Сценарий Configure scene можно запускать многократно. Если сцена уже настроена правильно, он не будет вносить изменения.

Выбор вручную

  1. Перейдите к GameObject WorldLockingManager в первоначальной (или глобальной) сцене.
  2. В инспекторе найдите WorldLockingContext.
  3. Откройте параметры Anchor Management (Управление привызками).
  4. Убедитесь, что флажок Use Defaults (Использовать значения по умолчанию) снят.
  5. Измените тип подсистемы привязки (Anchor Subsystem) на XRSDK.

Если для проекта и сцены настроено использование AR Foundation, выберите подсистему привязки AR Foundation. В примерах Пространственных привязок Azure (ASA) показана правильная конфигурация для использования AR Foundation (в настоящее время это требование ASA).

Раздел управления привязками параметров контекста

Использование MRTK с WLT в пакете SDK XR

MRTK, в дополнение к огромной пользе для абстракции взаимодействий пользователей в виртуальной реальности и AR, значительно упрощает нацеливание устройств с помощью пакета SDK XR. Ниже приведены примечания, которые могут оказаться полезными при настройке MRTK для нацеливания на конкретные устройства.

В них предполагается, что подсистема привязки WLT Anchor Management настроена соответствующим образом, как описано в предыдущем разделе.

Не забудьте запустить Mixed Reality Toolkit => Utilities => UnityAR => Update Scripting Defines при изменении целевых объектов подключаемого модуля.

Настройка подключаемого модуля XR для Windows (HoloLens)

Ознакомьтесь с полными инструкциями по началу работы с MRTK и пакетом SDK XR.

При работе в проекте WLT для начала можно использовать предоставляемый WLT профиль "WLT HL2 MRTKProfile" для HoloLens2 или "WLT AR MRTKProfile" для мобильных устройств.

Работа WLT с использованием подключаемого модуля XR для Windows была протестирована на Unity 2019.4 и Unity 2020.3 с использованием следующих версий:

  • XR Plugin Management: v3.2.16 (ожидается, что будет работать с v3.X.Y, X >= 2)
  • Подключаемый модуль Windows XR: версия 2.4.1 (до версии 2.4.1 привязки нарушены. Ожидается, что будут работать версии 2.4.Y, Y>=1, v2. X.Y, X>=1).
  • Подключаемый модуль смешанной реальности OpenXR: версия 1.2.0 (более ранние версии работали с небольшими проблемами. Настоятельно рекомендуется использовать последний подключаемый модуль MR OpenXR.)

Требуется только Windows MR Plugin или Mixed Reality OpenXR Plugin.

Настройка подключаемого модуля XR для ARCore (Android)

Чтобы получить подключаемый модуль XR для Android для приложения AR MRTK, следуйте инструкциям в статье Настройка MRTK для iOS и Android.

Примечание. Вам понадобятся все из перечисленного ниже:

  • XR Plugin Management (протестировано для v3.2.16; ожидается, что будет работать с v3.X.Y, X>=2).
  • Подсистемы AR (протестированы для v2.1.3; ожидается, что будет работать с v2.X.Y, X>1).
  • Подключаемый модуль XR для AR Core (протестирован для v2.1.12; ожидается, что будет работать с v2.X.Y, X>1).
  • AR Foundation (протестировано для v2.1.10; ожидается, что будет работать с v2.X.Y, X>1).

Для начала рекомендуется использовать предоставленный WLT профиль "WLT AR MRTKProfile".

Примечание. Если возникнет ошибка сборки manifest-merger failed, выполните соответствующие инструкции здесь: https://developers.google.com/ar/develop/unity/android-11-build

Настройка других подключаемых модулей XR (ARKit, Oculus и т. д.)

Настройка для других платформ может выполняться аналогично настройке ARCore, но не тестировалась. Если у вас есть доступ к таким устройствам и возможность их попробовать, любые отзывы помогут сообществу и его участники будут очень вам признательны.