Добавление группы источников кадров
Сессия AR может содержать несколько компонентов источников кадров, называемых группой источников кадров (frame source group). Во время выполнения сессия выбирает наиболее подходящий источник кадров из группы на основе текущего устройства и включенных функций AR. В этой статье объясняется, как использовать и управлять группой источников кадров.
Перед началом работы
- Ознакомьтесь с основными понятиями источника кадров, их типами и методами выбора во время выполнения.
Использование группы источников кадров предустановленной сессии AR
Сессия, созданная с конфигурацией по умолчанию, поставляется с предустановленной группой источников кадров, которой обычно достаточно при использовании одной функции AR.
Разные предустановленные сессии содержат разные источники кадров.
Сессия, созданная с использованием предустановки ARSessionFactory.ARSessionPreset.ImageTracking или через меню
AR Session (Image Tracking Preset), содержит только один источник кадров:
Сессия, созданная с использованием предустановки ARSessionFactory.ARSessionPreset.MegaBlock_MotionTracking_Inertial или через меню
AR Session (Mega Block Default Preset), содержит иерархию с несколькими компонентами источников кадров:
Если в сцене изначально использовалась предустановка для создания сессии, при добавлении других функций в процессе разработки, помимо добавления соответствующих компонентов frame filter, может потребоваться также добавление подходящих компонентов источников кадров.
Важно
После обновления с версии 4.7 или ниже необходимо полностью удалить сессию и заново создать ее через меню или с помощью ARSessionFactory, чтобы использовать предустановленную группу источников кадров.
Ниже перечислены компоненты источников кадров для всех предустановленных конфигураций функций AR по умолчанию. Обратите внимание, что порядок в списке соответствует порядку компонентов источника кадров в сцене:
| Пресет | Компоненты источника кадров |
|---|---|
Примечание
Порядок компонентов, созданных с использованием предустановок, гарантирует использование оптимального источника кадров на всех устройствах, поддерживаемых встроенными источниками кадров.
Использование конфигурации источников кадров по умолчанию
При использовании параметров по умолчанию конфигурация источников кадров автоматически настраивается в зависимости от устройства и включенных функций AR во время выполнения.
Если параметры источников кадров были изменены вручную, при изменении функций AR в сессии (например, при добавлении функции отслеживания движения в сессию, изначально содержащую только отслеживание изображений), может потребоваться ручная корректировка параметров источников кадров для соответствия новым функциональным требованиям, чтобы все функции AR работали с наилучшим результатом.
Важно
После обновления с версии 4.7 или ниже необходимо полностью удалить сессию и заново создать ее через меню или с помощью ARSessionFactory, чтобы использовать корректные параметры по умолчанию.
Добавление группы источников кадров
В представлении Hierarchy выберите AR Session (EasyAR), щелкните правой кнопкой мыши и через меню EasyAR Sense > [ AR функция ] > Frame Source : * добавьте компонент frame source, подходящий для этой функции. Также можно добавить нужный компонент frame source через меню EasyAR Sense > Frame Source by Transform Type > * Dof > Frame Source : *.
В скриптах можно использовать ARSessionFactory.AddFrameSource<Source>(GameObject, bool) для добавления компонента frame source.
Например, через меню EasyAR Sense > Frame Source by Transform Type > 3 Dof Rot-Only > Frame Source : Three Dof Camera Device можно добавить ThreeDofCameraDeviceFrameSource к текущей выбранной сессии.

Соответствующий код скрипта:
ARSessionFactory.AddFrameSource<ThreeDofCameraDeviceFrameSource>(session);
Сортировка источников кадров
В процессе сборки сессии из группы источников кадров будет выбран только один источник кадров для сборки в сессию. Правила выбора зависят от значения свойства AssembleOptions.FrameSourceSelection. При конфигурации по умолчанию порядок компонентов в группе источников кадров можно изменить, чтобы повлиять на выбор конечного источника кадров.
Обычно для сортировки можно использовать стандартные методы упорядочивания объектов в сцене в представлении Hierarchy, перемещая объекты frame source напрямую.
В скриптах можно использовать Transform.SetSiblingIndex(int) для изменения порядка объектов.
Например, чтобы поместить MotionTrackerFrameSource перед другими источниками кадров, в представлении Hierarchy выберите объект Motion Tracker и перетащите его на самое верхнее положение.
Того же эффекта можно достичь с помощью следующего кода:
motionTrackerFrameSource.transform.SetSiblingIndex(0);
Также доступны некоторые предопределенные методы сортировки. В представлении Hierarchy выберите AR Session (EasyAR), щелкните правой кнопкой мыши и через меню EasyAR Sense > Utility > Sort Frame Source : * > * отсортируйте определенные компоненты источников кадров.
В скриптах можно использовать ARSessionFactory.SortFrameSource(GameObject, ARSessionFactory.FrameSourceSortMethod) для достижения того же результата.
Например, через меню EasyAR Sense > Utility > Sort Frame Source : Motion Tracker > System SLAM можно поместить MotionTrackerFrameSource перед ARCoreFrameSource, ARCoreARFoundationFrameSource, ARKitFrameSource, ARKitARFoundationFrameSource и AREngineFrameSource.

Соответствующий код скрипта:
ARSessionFactory.SortFrameSource(session, new ARSessionFactory.FrameSourceSortMethod { MotionTracker = ARSessionFactory.FrameSourceSortMethod.MotionTrackerSortMethod.PreferEasyAR });
После такой сортировки иерархия сцены становится следующей:

Связанные темы
- Узнайте, как добавить и настроить источник кадров для гарнитур
- Попробуйте получить используемый источник кадров во время выполнения
