Table of Contents

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

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

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

Примечание

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

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

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

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

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

  • com.easyar.sense

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

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

alt text

Примечание

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

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

alt text

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

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

alt text

В скрипте можно создать ее с помощью 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 есть несколько ключевых условий:

  1. id в MegaBlockController.Source должен быть правильно настроен до MonoBehaviour.Start().
  2. block, соответствующий id этого Source, должен существовать в базе локализации.
  3. 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.

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

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