Конфигурация scene и использование AR Foundation в проектах EasyAR
Использование AR Foundation в Unity часто требует EasyAR для обхода ограничений устройств AR Foundation. Ниже описано, как правильно настроить и использовать AR Foundation в scene EasyAR, а также как динамически включать AR Foundation в зависимости от поддержки устройства.
Перед началом
- Прочитайте поддержку EasyAR для framework Unity XR, чтобы понять поддержку Unity XR framework в EasyAR и когда можно рассмотреть использование AR Foundation.
- Прочитайте включение AR Foundation в проекте EasyAR, чтобы узнать, как установить и настроить AR Foundation в проекте EasyAR.
Добавление компонентов AR Foundation
Добавьте AR Session и XR Origin из AR Foundation в scene EasyAR.
Добавление AR Session
В представлении Hierarchy щёлкните правой кнопкой мыши по пустому месту и через меню XR > AR Session добавьте ARSession Unity в scene.

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

Примечание
Этот XR Origin функционально пересекается с XR Origin EasyAR, поэтому нужно использовать Unity XR Origin, а не XR Origin EasyAR.
Если в scene уже существовал XR Origin EasyAR, обычно называемый XR Origin (EasyAR), переместите его дочерние objects под новый XR Origin, а затем удалите XR Origin (EasyAR).

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

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

Затем выберите Main Camera под XR Origin и настройте camera согласно инструкциям конфигурации Camera.
В итоге полная структура scene EasyAR с добавленным AR Foundation должна выглядеть примерно так:
Осторожно
Если нужно изменить конфигурацию 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).

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

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

Совет
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 будут отсутствовать; это нормальная ситуация.

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