Редактор в XR: режимы запуска и ограничения
Варианты устройства, отдельный immersive запуск, permissions и диагностика.
XR-редактор — Android-вариант редактора для работы в системе XR-устройства. Окно редактора, обычная игра и immersive XR-игра — разные режимы. Наличие редактора в панели шлема не подтверждает tracking или запуск immersive проекта.
Какая сборка нужна
В текущих исходниках Reckfell 1.0.0 предусмотрены варианты Android, HorizonOS и PICO OS. Это перечень конфигураций, а не подтверждение опубликованных APK или испытаний всех устройств. Используйте пакет именно для своей системы/ABI. Ссылки на неподтверждённые страницы магазинов не приводятся.
| Вариант | Что заявлено исходниками |
|---|---|
| Android | Необязательная OpenXR feature и отдельная immersive activity; базовый minSdk=24. Этого недостаточно, чтобы объявить любой Android-телефон XR-устройством |
| HorizonOS | arm64-v8a; manifest заявляет min/target HorizonOS 69, обязательный headtracking и модели quest2/quest3/questpro/quest3s |
| PICO OS | arm64-v8a; minSdk=29 и обязательный headtracking |
Числа из manifest — входные требования сборки, не результат проверки совместимости текущей версии ОС. Доступность runtime extensions, контроллеров, hand tracking, passthrough и spatial data проверяйте отдельно. Этот Android-порт также не является настольным PCVR-редактором.
C# editor tools в этих вариантах не поддержаны: build gate модуля разрешает редактор только на настольных платформах. Для C# проекта используйте настольный редактор и отдельное развёртывание игры на устройстве. Наличие Android target для C# игры не меняет это ограничение.
Минимальный рабочий цикл
- Проверьте установку и запуск подходящего XR-редактора. Откройте локальную папку небольшого проекта без C#, подтвердите запись ресурса и повторное открытие, как описано в Android-редакторе.
- Сначала запустите и остановите простой не-XR уровень. Это проверит обычный Play отдельно от immersive запуска.
- Для XR проекта настройте OpenXR, активный XROrigin3D/XRCamera3D и необходимые action bindings. Не добавляйте C# примеры на устройство, где редактор не имеет C# tools; такой пример проверяйте в настольном процессе разработки.
- Запустите проект в immersive режиме. Проверьте tracking головы, привязки контроллеров/рук и остановку. Способ возврата к окну редактора определяется системным меню устройства; конкретные пункты ОС могут отличаться.
- Вернитесь в редактор, сохраните изменение и повторите запуск. Перед большой сценой отдельно подтвердите работу нужного renderer и каждой vendor capability.
Это порядок проверки на устройстве, не уже выполненная демонстрация. Не копируйте старые инструкции по названиям экспериментальных пунктов меню конкретной ОС как обязательные шаги.
Ввод и размещение окон
XR editor feature определяется тем, распознала ли Android-реализация устройство как native XR. Это не произвольный флаг проекта. Текущая реализация отключает embedded game на таких устройствах: run/window_placement/game_embed_mode имеет только Disabled=-1. Ожидайте отдельный Play/immersive процесс, а не обещание встроенного окна настольного редактора.
Для удобства контекстных действий проверьте interface/touchscreen/enable_long_press_as_right_click; изменение требует перезапуска редактора. Размер ручек настраивается через interface/touchscreen/scale_gizmo_handles, также с перезапуском. Автоматические touch defaults в XR отличаются от обычного телефона; не считайте настройку уже включённой. Для набора текста можно использовать поддерживаемую устройством клавиатуру; системный перехват сочетаний проверяйте отдельно.
Разрешения и доступ к проекту
Доступ к папкам устроен как в Android-редакторе. Сохраняйте проект в локальную доступную папку целиком, а не открывайте единственный облачный документ. Разрешения другого приложения для синхронизации не дают редактору того же доступа автоматически. Общий доступ к файлам не открывает приватные папки чужих приложений — ограничения Android продолжают действовать.
XR permissions запрашиваются отдельно при включённом xr/openxr/enabled. В HorizonOS-реализации добавлены USE_SCENE; камера запрашивается отдельно при активации CameraFeed. Permission или запись в manifest не доказывает поддержку конкретной API и наличие room data. При отказе приложение должно корректно работать без недоступной функции либо показать конкретную причину.
Важное отличие HorizonOS flavor: overlay manifest удаляет REQUEST_INSTALL_PACKAGES из общего manifest. Поэтому общую инструкцию «разрешите редактору устанавливать APK» нельзя применять ко всем XR-сборкам. Эта статья не подтверждает установку самостоятельных игр из XR-редактора.
Проекты и native плагины
Переносите project.reckfell, уровни, префабы, исходные ресурсы и их sidecar metadata. Сначала сохраните проект и закройте активную копию; после переноса дождитесь импорта. Для native плагина нужна библиотека Android arm64-v8a под соответствующие движок и vendor dependencies. Библиотека настольного ПК или другое ABI не подойдёт. Наличие самого плагина также не даёт runtime расширений, которых нет у шлема.
Диагностика
| Симптом | Проверка |
|---|---|
| Редактор запускается, immersive игра нет | Нужная activity/вариант приложения, OpenXR runtime, включённый XR в проекте и Output |
| Нет C# сборки | Ограничение mobile editor tools; перенесите разработку на настольный редактор |
| Нет embedded Play | Ожидаемое ограничение XR editor; используйте отдельный режим запуска |
| Нет плоскостей/якорей/камеры | Конкретная capability, permissions, room data; наличие окна редактора этого не подтверждает |
| Нельзя открыть папку | Полная локальная копия проекта и доступ редактора к ней |
| Контроллер работает в системе, но не в игре | Action map, активная XR-сессия, tracking и корректный origin; системный указатель не доказывает игровые bindings |
| Просадки частоты | Сначала простая сцена; измерьте GPU/CPU и renderer на устройстве, не включайте все эффекты одновременно |
Что проверено
Варианты, manifest requirements, permissions, отказ от embedded game, touch settings и C# editor gate сверены с текущими исходниками. Python gate выполнен на хосте; сборки APK, запуск на шлеме, меню ОС, immersive переход, tracking/hand input, passthrough, сохранение проекта и производительность не проверены. Никакие изображения не выдаются за захват свежего XR-редактора. Движок, установленный Runtime и SDK не менялись.