Table of Contents

Конфигурация scene и использование AR Foundation в проектах EasyAR

Использование AR Foundation в Unity часто требует EasyAR для обхода ограничений устройств AR Foundation. Ниже описано, как правильно настроить и использовать AR Foundation в scene EasyAR, а также как динамически включать AR Foundation в зависимости от поддержки устройства.

Перед началом

Добавление компонентов AR Foundation

Добавьте AR Session и XR Origin из AR Foundation в scene EasyAR.

Добавление AR Session

В представлении Hierarchy щёлкните правой кнопкой мыши по пустому месту и через меню XR > AR Session добавьте ARSession Unity в scene.

alt text

Примечание

Эта AR Session отличается от AR Session EasyAR; обе должны одновременно присутствовать в scene.

Добавление XR Origin

В представлении Hierarchy щёлкните правой кнопкой мыши по пустому месту и через меню XR > XR Origin (Mobile AR) добавьте XROrigin Unity в scene.

alt text

Примечание

Этот XR Origin функционально пересекается с XR Origin EasyAR, поэтому нужно использовать Unity XR Origin, а не XR Origin EasyAR.

Если в scene уже существовал XR Origin EasyAR, обычно называемый XR Origin (EasyAR), переместите его дочерние objects под новый XR Origin, а затем удалите XR Origin (EasyAR).

alt text

В этот момент, если под новым XR Origin нет XR Origin Child, добавьте его вручную.

В представлении Hierarchy выберите XR Origin и щёлкните правой кнопкой мыши. Через меню EasyAR Sense > Origin > Origin : XR Origin Child добавьте XR Origin Child под XR Origin.

alt text

Настройка Camera

Если в scene уже была Camera для AR, появится лишняя main camera; старую camera нужно удалить.

alt text

Затем выберите Main Camera под XR Origin и настройте camera согласно инструкциям конфигурации Camera.

В итоге полная структура scene EasyAR с добавленным AR Foundation должна выглядеть примерно так:

alt text

Осторожно

Если нужно изменить конфигурацию AR Foundation через ARCameraManager.currentConfiguration, учитывайте, что некоторые телефоны сами имеют проблемы (например, Mi 10): после изменения конфигурации изображение может не получаться, и EasyAR не сможет использоваться (у приложения есть image background, но функции EasyAR не реагируют). Поэтому обычно менять её не рекомендуется; если изменение необходимо, подготовьте fallback на случай, когда EasyAR недоступен.

Совместимость устройств и динамическое включение AR Foundation

EasyAR совместим с гораздо большим числом устройств, чем AR Foundation, поэтому требуется конфигурация, гарантирующая, что приложение включает AR Foundation только при необходимости, а в остальных случаях полностью отключает AR Foundation.

Проверка компонентов frame source

В общем случае session, созданная через меню EasyAR, обычно автоматически добавляет ARCoreARFoundationFrameSource и ARKitARFoundationFrameSource (за исключением некоторых функций, таких как image tracking, которым не нужен SLAM).

alt text

Важно

ARCoreARFoundationFrameSource и ARKitARFoundationFrameSource — это frame source, предоставляемые EasyAR для включения функций AR Foundation на устройствах, поддерживающих AR Foundation. Если session в scene не содержит этих frame source, включить функции AR Foundation невозможно.

Если session в scene не содержит этих frame source, их можно добавить вручную через меню.

alt text

Чтобы приложение могло работать на телефонах, не поддерживающих AR Foundation, также нужно убедиться, что session содержит frame source помимо AR Foundation. Типичный ARSession должен выглядеть примерно так,

alt text

Совет

Frame source можно сортировать в соответствии с фактическими потребностями. Во время работы приложения session выбирает первый доступный frame source в порядке transform в зависимости от поддержки устройства.

Включение AR Foundation только при необходимости

Поскольку нижележащая реализация AR Foundation на телефонах — это ARCore и ARKit, он может использоваться только на ограниченном наборе устройств, особенно недоступен на многих китайских Android-телефонах. Поэтому обычно рекомендуется включать AR Foundation и связанные функциональные scripts только на поддерживаемых устройствах.

EasyAR может выполнять эти операции автоматически. Эту функцию можно включить или отключить параметром Unity XR > Unity XR Auto Switch в Project Settings > EasyAR > Sense. Подробности см. в автоматическом переключении Unity XR objects.

Scene, сохраняющие совместимость с AR Foundation

Scene, в которую правильно добавлены компоненты AR Foundation, может нормально работать как при установленном package AR Foundation, так и без него.

Если AR Foundation не установлен, функции AR Foundation и соответствующие frame source недоступны, а некоторые scripts в scene будут отсутствовать; это нормальная ситуация.

alt text alt text

Совет

Многие sample могут нормально работать как с установленным package AR Foundation, так и без него. Если нужно включить поддержку AR Foundation в этих sample, достаточно включить AR Foundation в проекте EasyAR.

Следующие шаги

Связанные темы

  • Связанные AR-компоненты, упомянутые в статье:
  • AR Foundation предоставляет motion tracking на некоторых устройствах. О связи motion tracking и разных функций EasyAR см.:
  • Дополнительную информацию о конфигурации scene AR Foundation можно прочитать в официальной документации AR Foundation; перед чтением выберите соответствующую версию документации: