Table of Contents

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

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

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

Примечание

Следующее содержимое и инструменты применимы только для разработки приложений Unity с использованием EasyAR Mega.

Если вы разрабатываете мини-приложение, обратитесь к Созданию и загрузке аннотаций с использованием Unity Editor (разработка мини-приложений).

Если вы не разрабатываете приложение Unity, но хотите просмотреть результаты построения карты Mega, обратитесь к Просмотру 3D-реального сетки в Руководстве по использованию Mega.

Если вы не разрабатываете приложение Unity, но нуждаетесь в имитационном запуске для просмотра эффекта локализации, обратитесь к Просмотру имитационного запуска в Руководстве по использованию Mega.

В этом документе предполагается, что в проекте уже импортированы следующие пакеты Unity:

  • com.easyar.sense

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

Целью отслеживания Mega является пустой объект, содержащий компонент MegaBlockController, который в Unity представляет собой блок.

alt text

Примечание

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

Если в конфигурации функция Mega не включена правильно, то ее нельзя будет использовать.

alt text

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

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

alt text

В сценарии можно использовать ARSessionFactory.CreateController для создания.

ARSessionFactory.CreateController<MegaBlockController>();

Настройка отслеживаемых целей

Настройка источника данных target

Цели отслеживания могут быть распознаны и отслежены только после правильной настройки их источника.

В представлении Hierarchy можно выбрать узел блока и заполнить идентификатор и имя блока.

В скрипте можно изменить Source перед MonoBehaviour.Start(), чтобы настроить источник блока.

block.Source = new MegaBlockController.BlockInfoSourceData(id, name);

Где:

  • Идентификатор блока (block id) является уникальным идентификатором блока и должен быть заполнен.
  • Имя блока (block name) - это имя блока, которое можно заполнить по желанию. Как правило, рекомендуется указывать реальное имя блока для удобства идентификации.
Совет

Идентификатор и имя блока можно получить в соответствующей базе позиционирования в центре разработки EasyAR.

Если в базе позиционирования нет данных о блоке, необходимо добавить нужный блок в базу позиционирования и снова проверить действительность облачной базы позиционирования.

Конфигурация трекера, используемого target

Цель отслеживания загружается настроенным трекером и отслеживается после правильного позиционирования.

В представлении Hierarchy можно выбрать узел блока, а затем выбрать Mega Tracker в сессии.

В скрипте можно изменить Tracker для настройки трекера блока.

block.Tracker = megaTracker;

Tracker можно изменить в любое время во время выполнения. Загрузка/выгрузка произойдет во время выполнения сессии. Если установить Tracker в null, этот target будет выгружен из ранее настроенного трекера. Загрузка блока - это виртуальный процесс и не может завершиться с ошибкой.

Примечание

Для отслеживания target есть несколько ключевых условий:

  1. id MegaBlockController.Source должен быть правильно настроен до MonoBehaviour.Start().
  2. Блок, соответствующий id этого Source, должен существовать в библиотеке позиционирования.
  3. MegaBlockController.Tracker должен быть настроен для использования правильной библиотеки позиционирования.

Отслеживание жизненного цикла цели

Типичный жизненный цикл отслеживаемой цели выглядит следующим образом:

flowchart LR
  sstart((сеанс запущен))
  sstop([сеанс остановлен])
  
  start("Target.Start")
  load("Загрузка")
  tracking[["Непрерывное отслеживание"]]

  sstart --> load --> tracking --> sstop
  start -. "Target.Tracker = tracker" .-> load 

Процесс можно грубо разделить на несколько этапов:

  • Загрузка: Цель загружается трекером, для которого она настроена. Это происходит после Start() самой цели и после запуска сеанса.
  • Процесс отслеживания: После того как цель локализована, трекер продолжает отслеживать её положение и состояние до тех пор, пока не будет локализована другая цель.
  • Выгрузка: Цель выгружается из трекера, и трекер прекращает её отслеживание. Это происходит после остановки сеанса или после того, как для цели отключается использование трекера.

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

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