Добавление цели отслеживания Mega
В этой статье описано, как добавлять и настраивать цели отслеживания Mega.
Перед началом
- Проверьте готова ли моя функция локализации?, чтобы убедиться, что база локализации создана правильно и карта добавлена.
- Импортируйте последнюю версию плагина EasyAR и включите функцию Mega
- Изучите основные понятия и способы использования целей отслеживания Unity AR
Примечание
Следующее содержимое и инструменты применимы только к процессу разработки Unity-приложений с EasyAR Mega.
Если вы разрабатываете мини-программу, см. создание и загрузку аннотаций в Unity Editor (разработка мини-программ).
Если вы не разрабатываете Unity-приложение, но хотите посмотреть результат построения карты Mega, см. предпросмотр 3D-сетки реальной сцены в руководстве по Mega.
Если вы не разрабатываете Unity-приложение, но вам нужно смоделировать запуск и посмотреть эффект локализации, см. предпросмотр эффекта моделируемого запуска в руководстве по Mega.
Для содержимого этой статьи в проект уже должны быть импортированы следующие Unity-пакеты:
com.easyar.sense
Цели отслеживания Mega
Цель отслеживания Mega - это пустой объект с компонентом MegaBlockController; в Unity он представляет один block.

Примечание
Если пакет com.easyar.mega не импортирован, функции редактора для block недоступны, но это не влияет на эффект отслеживания и функции во время выполнения.
Если функция Mega не была правильно включена в настройках, ее нельзя будет использовать.

Создание цели отслеживания
В представлении Hierarchy щелкните правой кнопкой мыши по пустому месту и через меню EasyAR Sense > Mega > Target : Mega Block создайте цель отслеживания Mega.

В скрипте можно создать ее с помощью ARSessionFactory.CreateController.
ARSessionFactory.CreateController<MegaBlockController>();
Настройка цели отслеживания
Настройка источника данных target
Цель отслеживания может быть распознана и отслеживаться только после правильной настройки ее источника.
В представлении Hierarchy можно выбрать узел block и заполнить ID и Name блока.

В скрипте можно до MonoBehaviour.Start() изменить Source, чтобы задать источник block.
block.Source = new MegaBlockController.BlockInfoSourceData(id, name);
Где:
- block id - уникальный идентификатор block, его обязательно нужно заполнить.
- block name - имя block; его можно заполнить произвольно по необходимости, но обычно рекомендуется указывать реальное имя block, чтобы его было проще распознать.
Совет
block id и name можно получить в соответствующей базе локализации в центре разработчиков EasyAR.

Если в базе локализации нет данных block, нужно добавить нужный Block в базу локализации и снова проверить, что база облачной локализации действительна.
Настройка tracker, используемого target
Цель отслеживания загружается настроенным tracker и после успешной локализации отслеживается.
В представлении Hierarchy можно выбрать узел block, а затем выбрать Mega Tracker в session.
![]()
В скрипте можно изменить Tracker, чтобы задать tracker для block.
block.Tracker = megaTracker;
Tracker можно изменять в любой момент во время выполнения; загрузка/выгрузка будет происходить во время работы session. Если установить Tracker в null, этот target будет выгружен из ранее заданного tracker. Загрузка block является виртуальным процессом и не завершается ошибкой.
Примечание
Для отслеживания target есть несколько ключевых условий:
- id в MegaBlockController.Source должен быть правильно настроен до MonoBehaviour.Start().
- block, соответствующий id этого Source, должен существовать в базе локализации.
- MegaBlockController.Tracker должен быть настроен на использование правильной базы локализации.
Жизненный цикл цели отслеживания
Типичный жизненный цикл цели отслеживания выглядит так:
flowchart LR
sstart((session запущена))
sstop([session остановлена])
start("Target.Start")
load("Загрузка")
tracking[["Непрерывное отслеживание"]]
sstart --> load --> tracking --> sstop
start -. "Target.Tracker = tracker" .-> load
Процесс в целом делится на несколько этапов:
- Загрузка: цель отслеживания загружается настроенным tracker. Это происходит после Start() самого target и запуска session.
- Процесс отслеживания: после локализации цели отслеживания tracker продолжает отслеживать положение и состояние цели, пока не будет локализована другая цель.
- Выгрузка: цель отслеживания выгружается из tracker, и tracker больше не отслеживает цель. Это происходит после остановки session или после того, как target настроен на неиспользование tracker.







