Если коротко:
Unity подключает OpenXR как package через XR Plug-in Management и добавляет платформенные возможности отдельными OpenXR Features или provider-пакетами. Unreal Engine содержит собственный OpenXR Plugin и расширяет его другими plugins; Meta XR Plugin может работать поверх Epic Native OpenXR и добавлять функции Quest. Один стандарт не делает проекты взаимозаменяемыми: сцены, input, компоненты, проверка настроек и сборка остаются средствами конкретного engine.
Meta XR Plugin vs OpenXR Unreal обозначает выбор backend и vendor-слоя, а сравнение с Unity показывает другой способ подключить тот же стандарт. Он определяет связь VR app с runtime. Структуру scene, input и build workflow задаёт engine.
Общая основа
Приложение создаёт OpenXR instance, получает список extensions и включает нужные возможности. Runtime обслуживает конкретные devices. Наличие функции в registry ещё не гарантирует её поддержку гарнитурой.
Оба engine закрывают низкоуровневые вызовы своими компонентами. Сцены между редакторами не переносятся.
Реализация в Unity
Базовая интеграция поставляется в package com.unity.xr.openxr. Её включают через Project Settings > XR Plug-in Management для нужного build target. В OpenXR Features выбирают interaction profiles, а Project Validation проверяет settings.
Vendor features подключаются отдельным слоем. Package Unity OpenXR Meta реализует расширения для Quest и связывает часть функций с AR Foundation. Код использует XR Origin, Input System и Feature API.
Hand tracking показывает границу слоёв: конкретный hand feature должен поддерживаться package и runtime. Приложение проверяет extension, а управление связывает с action maps.
Начальная настройка разобрана в гайде по VR-проекту Unity.
Реализация в Unreal Engine
Epic включает OpenXR Plugin в состав движка. Он содержит модули для HMD, input, AR и editor. Дополнения добавляют hand tracking и vendor-функции без замены базового слоя.
Разработчик включает модули, перезапускает editor и задаёт Project Settings. Input, компоненты и Blueprint nodes зависят от выбранного набора. Базовая последовательность описана в руководстве для Unreal Engine.
Платформенный слой Quest
Для Quest доступны встроенная интеграция Epic и расширяющий её Meta XR Plugin. Документация производителя рекомендует для новых projects backend Epic Native OpenXR: vendor-слой работает в extension mode поверх реализации Epic. Так можно использовать другие extensions и исходный код engine.
Backend Meta XR with OVRPlugin оставлен для существующих projects как legacy. Доступность features зависит от версии движка и backend. Часть функций может требовать Oculus-VR fork, поэтому совместимость проверяют до обновления.
Сравнение реализации
| Участок | Unity | Unreal Engine |
|---|---|---|
| Базовый слой | Package в XR Plug-in Management | Встроенный OpenXR Plugin Epic |
| Расширения | Features и provider packages | Extension plugins поверх базовой интеграции |
| Meta Quest | Unity OpenXR Meta и связанные AR components | Vendor-модуль с Epic Native backend |
| Input | Input System, action maps, interaction profiles | Input modules, actions и Blueprint/C++ API plugins |
| Проверка | Project Validation для выбранной платформы | Project Settings, dependencies и setup tools |
| Build | Build Profiles и настройки provider по target | Packaging settings и platform tools для target device |
Таблица описывает интеграцию, а не скорость рендера или удобство editor.
Как выбрать набор plugins
Начните с функций для целевых devices. Для переносимого VR-приложения оставьте базовый OpenXR слой и добавляйте extensions после проверки runtime. Vendor package нужен для passthrough, anchors и других платформенных API.
Фиксируйте версии engine, packages или modules и выбранный backend. После изменения слоя повторите device build: запуск в editor не проверяет Android packaging и extensions гарнитуры.
Механизм расширений описан в статье об extensions и API Layers. Для Quest есть инструкции по сборке Unity-приложения и сборке Unreal Engine.
Итог
OpenXR сохраняет общий контракт с runtime, но каждый engine строит свою систему сборки. Unity использует packages и Features. Unreal опирается на интеграцию Epic, а Meta XR добавляет Quest-specific support поверх native backend.