Добавление цели отслеживания Mega Go
В этой статье описано, как добавить и настроить цель отслеживания Mega Go.
Перед началом
- Проверьте Доступна ли моя функция localization?, чтобы убедиться, что загружена правильная map.
- Импортируйте последнюю версию плагина EasyAR и включите функцию Mega Go
- Изучите базовые понятия и способы использования целей отслеживания Unity AR
Примечание
Следующее содержимое и tools применимы только к процессу разработки Unity-приложений с EasyAR Mega Go. Требуется версия плагина >= 4003.1.
Mega Go не поддерживает разработку mini program.
Для содержимого этой статьи в проект уже должны быть импортированы следующие Unity-пакеты:
com.easyar.sense
Цель отслеживания Mega Go
Цель отслеживания Mega Go - это пустой объект, содержащий компонент MegaGoBlockController. В Unity он представляет block.

Примечание
Если пакет com.easyar.mega не импортирован, редакторские функции block недоступны, но это не влияет на эффект и функции отслеживания во время выполнения.
Создание цели отслеживания
В пустой области представления Hierarchy щёлкните правой кнопкой мыши и создайте цель отслеживания Mega через меню EasyAR Sense > Mega > Target : Mega Go Block.

В script её можно создать с помощью ARSessionFactory.CreateController.
ARSessionFactory.CreateController<MegaGoBlockController>();
Настройка цели отслеживания
Перед использованием target необходимо настроить его источник данных и tracker.
Настройка источника данных target
Цель отслеживания может распознаваться и отслеживаться только после правильной настройки её источника.
В представлении Hierarchy выберите node block, затем заполните Path Type и Path для block.

В script можно изменить Source до MonoBehaviour.Start() компонента, чтобы задать источник block.
block.Source = new MegaGoBlockController.FileSourceData(PathType.Absolute, path);
Где:
- PathType - тип пути к emg-файлу; это может быть абсолютный путь (
Absolute) или путь StreamingAssets проекта (StreamingAssets). - Path - путь к emg-файлу. Когда PathType равен
Absolute, это абсолютный путь в файловой системе. Когда PathType равенStreamingAssets, это относительный путь внутри папки StreamingAssets проекта.
Совет
Поскольку emg-файл может быть большим, если размер пакета приложения слишком велик, рекомендуется использовать путь StreamingAssets только на этапе тестирования. Для официального релиза используйте абсолютный путь и поместите emg-файл в доступный приложению путь файловой системы через resource package или другим способом.
Настройка tracker, используемого target
Цель отслеживания будет загружаться и отслеживаться настроенным tracker.
Важно
Tracker Mega Go может отслеживать только один block одновременно. Если в один и тот же tracker одновременно настроено несколько block, будет использоваться только block, загруженный последним.
В представлении Hierarchy выберите node block, затем выберите Mega Go Tracker в session.
![]()
В script можно изменить Tracker, чтобы задать tracker для block.
block.Tracker = megaGoTracker;
Tracker можно изменять в любое время во время выполнения; загрузка/выгрузка будут происходить при работающей session. Если установить Tracker в null, этот target будет выгружен из ранее заданного tracker.
Примечание
Чтобы target отслеживался, есть несколько ключевых условий:
- Block, соответствующий Source, должен быть в доступном состоянии (официальные данные всегда доступны offline, тестовые данные доступны только когда эти данные существуют в service).
- Файл MegaGoBlockController.Source должен быть корректно загружен.
- После загрузки файла не должен быть загружен другой файл, соответствующий другому block.
Жизненный цикл цели отслеживания
Типичный жизненный цикл цели отслеживания выглядит следующим образом:
flowchart LR
sstart((session запущена))
sstop([session остановлена])
start("Target.Start")
load("Загрузка")
tracking[["Непрерывное отслеживание"]]
sstart --> load --> tracking --> sstop
start -. "Target.Tracker = tracker" .-> load
Процесс примерно делится на несколько этапов:
- Загрузка: цель отслеживания загружается настроенным tracker. Это происходит после собственного Start() target и после запуска session.
- Процесс отслеживания: после localization цели отслеживания tracker продолжает отслеживать положение и состояние target, пока target не будет выгружен или не будет загружен другой target.
- Выгрузка: цель отслеживания выгружается из tracker, и tracker больше не отслеживает target. Это происходит при остановке session или после настройки target на неиспользование tracker.
