Если коротко:

Для passthrough на Meta Quest в Unity включите OpenXR и группу функций Meta Quest для Android, активируйте Meta Quest Camera (Passthrough), добавьте AR Camera Manager к камере XR Origin и сделайте её фон прозрачным. Изображение реального мира выводит runtime как composition layer, поэтому обычной MR-сцене не требуется доступ к пикселям камеры. Разрешение HEADSET_CAMERA нужно только приложению, которое действительно читает кадры через Passthrough Camera API.

Unity Meta Quest Passthrough оставляет реальную комнату фоном для виртуальных объектов. В актуальном project это настраивается через OpenXR и AR Foundation: camera передаёт позу, а окружение выводит runtime Meta отдельным composition layer.

Сначала выберите один стек

Для нового project рекомендуется OpenXR Plugin. Здесь используется Unity OpenXR Meta и AR Camera Manager.

В официальном tutorial есть и другой маршрут: Meta XR Core SDK, OVRCameraRig, OVRManager и OVRPassthroughLayer. Он подходит проектам на этом SDK. Не переносите его компоненты в OpenXR/AR Foundation scene: две схемы управляют режимом по-разному.

Если OpenXR ещё не настроен, начните с инструкции по созданию VR-проекта в Unity.

Шаг 1. Подготовьте проект и платформу

Рекомендуется editor версии 6.1 или новее. Зафиксируйте совместимые версии AR Foundation, OpenXR Plugin и Unity OpenXR Meta. Пакеты устанавливаются через Window > Package Manager.

Откройте File > Build Profiles, select Android и click Switch Platform. Затем в Edit > Project Settings > XR Plug-in Management включите OpenXR. На Android tab активируйте группу устройства, а в списке OpenXR Features включите Meta Quest: Camera (Passthrough).

Для запуска через Quest Link повторите настройки во вкладке Windows/Mac/Linux. Desktop tab и Android tab независимы: работа через Link не подтверждает работу APK.

Шаг 2. Настройте camera в сцене

Используйте XR Origin и его Main Camera. В Inspector добавьте к ней component AR Camera Manager. Для Built-in Render Pipeline установите Clear Flags: Solid Color, для URP выберите Background Type: Solid Color; alpha у цвета должен быть равен нулю.

AR Camera Background на Quest не нужен и не влияет на результат. Его можно удалить из Quest-only project.

Шаг 3. Проверьте composition layer

Runtime может создать GameObject Passthrough с компонентом Composition Layer. Слой размещается позади сцены: Layer Order равен -1, смешивание использует alpha. Непрозрачный фон camera закроет его чёрным цветом.

Для собственного порядка слоёв добавьте Composition Layer вручную и select тип Meta OpenXR - Passthrough. Не создавайте второй OVRPassthroughLayer в project на AR Foundation.

Шаг 4. Не запрашивайте лишнее разрешение

Обычный passthrough передаётся в OpenXR compositor. Unity не получает пиксели реальной camera, поэтому разрешение на чтение кадров не требуется.

horizonos.permission.HEADSET_CAMERA относится к Camera API и нужно, когда приложение анализирует реальные кадры. API имеет отдельные требования к Quest 3/3S, Horizon OS и package. AR Camera Manager сам по себе не предоставляет изображение для сохранения.

Шаг 5. Соберите и проверьте на устройстве

Включите Developer Mode для Quest, подключите гарнитуру по USB и подтвердите запрос доступа. В Build Profiles выберите её в поле Run Device, затем нажмите Build and Run.

Проверьте положение virtual object, прозрачность, границы игровой зоны и восстановление после снятия гарнитуры. Итоговую Android build тестируйте на устройстве.

Если вместо комнаты виден чёрный фон

  1. Проверьте alpha фонового цвета Main Camera.
  2. Убедитесь, что OpenXR и Meta Quest feature group включены именно на нужном platform tab.
  3. Проверьте наличие AR Camera Manager и функции Meta Quest: Camera (Passthrough).
  4. Откройте Hierarchy во время запуска и найдите runtime-объект Passthrough.
  5. Удалите конфликтующие компоненты второго стека, если scene одновременно содержит AR Foundation и старую OVR-схему.

Принцип сквозного обзора разобран в материале о passthrough в VR. Затем переходите к окклюзии в mixed reality, которая задаёт перекрытие виртуальных объектов реальными.

Такой порядок отделяет настройку рендера mixed reality от доступа к данным камеры и не смешивает OpenXR/AR Foundation с компонентами OVR из другого workflow.

Проверка по шагам

Короткий чек-лист

Выполнено 0 из 7

0 из 7
Поделиться:TelegramВКонтакте

Источники

  1. Meta Horizon OS Developers: Passthrough basic tutorial
  2. Unity OpenXR Meta: Camera (Passthrough)
  3. Meta Oculus Samples: Passthrough Camera API