Table of Contents

Добавление цели отслеживания Mega Go

В этой статье описано, как добавить и настроить цель отслеживания Mega Go.

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

Примечание

Следующее содержимое и tools применимы только к процессу разработки Unity-приложений с EasyAR Mega Go. Требуется версия плагина >= 4003.1.

Mega Go не поддерживает разработку mini program.

Для содержимого этой статьи в проект уже должны быть импортированы следующие Unity-пакеты:

  • com.easyar.sense

Цель отслеживания Mega Go

Цель отслеживания Mega Go - это пустой объект, содержащий компонент MegaGoBlockController. В Unity он представляет block.

alt text

Примечание

Если пакет com.easyar.mega не импортирован, редакторские функции block недоступны, но это не влияет на эффект и функции отслеживания во время выполнения.

Создание цели отслеживания

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

alt text

В 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-файл следует загрузить со страницы Mega Go в EasyAR Developer Center.

Совет

Поскольку 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 отслеживался, есть несколько ключевых условий:

  1. Block, соответствующий Source, должен быть в доступном состоянии (официальные данные всегда доступны offline, тестовые данные доступны только когда эти данные существуют в service).
  2. Файл MegaGoBlockController.Source должен быть корректно загружен.
  3. После загрузки файла не должен быть загружен другой файл, соответствующий другому 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.

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

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