Если коротко:
Для 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 тестируйте на устройстве.
Если вместо комнаты виден чёрный фон
- Проверьте alpha фонового цвета Main Camera.
- Убедитесь, что OpenXR и Meta Quest feature group включены именно на нужном platform tab.
- Проверьте наличие
AR Camera Managerи функцииMeta Quest: Camera (Passthrough). - Откройте Hierarchy во время запуска и найдите runtime-объект
Passthrough. - Удалите конфликтующие компоненты второго стека, если scene одновременно содержит AR Foundation и старую OVR-схему.
Принцип сквозного обзора разобран в материале о passthrough в VR. Затем переходите к окклюзии в mixed reality, которая задаёт перекрытие виртуальных объектов реальными.
Такой порядок отделяет настройку рендера mixed reality от доступа к данным камеры и не смешивает OpenXR/AR Foundation с компонентами OVR из другого workflow.
Проверка по шагам
Короткий чек-лист
Выполнено 0 из 7