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

В разработке часто необходимо использовать модель блока для помощи в просмотре и размещении 3D-контента. Эту модель можно загрузить в сцену с помощью инструмента для удобства просмотра и использования в качестве референса.

Положение модели выровнено с целью отслеживания блока, что позволяет размещать 3D-контент непосредственно на модели.
Совет
Модель хранится под узлом инструмента, существует только в режиме редактора и не включается в финальное приложение.
Добавление целей отслеживания в редакторе
Для использования этого метода необходимо настроить BlockHolder.BlockRootSource на External (по умолчанию) или Mixed.

Добавление инструмента Block Viewer for Unity Developer
В окне Hierarchy щелкните правой кнопкой мыши на пустом месте, через меню EasyAR Mega > Tool > Block Viewer for Unity Developer (Edit Mode) можно добавить инструмент Block Viewer для разработки в Unity.

Важно
При разработке приложений Mega на Unity обязательно используйте инструмент Block Viewer for Unity Developer. Другие инструменты в меню EasyAR Mega > Tool не подходят для разработки приложений Unity.
Хотя Annotation Tool имеет схожие функции, часть его функционала будет удалена в будущих версиях, поэтому его использование не рекомендуется.
Функция аннотирования (сама аннотация) в Annotation Tool скоро будет перенесена на веб-сайт центра разработки EasyAR, загрузка block mesh и размещение моделей не затронуты.
После успешного добавления инструмента в иерархии сцены появится узел EasyAR.Mega.BlockViewer (Dev) и узел MegaBlocks.

Генерация целей отслеживания — block
Выберите узел EasyAR.Mega.BlockViewer (Dev), на панели Inspector введите данные учетной записи EasyAR и войдите;

Нажмите кнопку справа от Mega Cloud Service;

Выберите нужную Службу локализации Mega, нажмите ОК.

После выбора службы список блоков из текущего сервиса отобразится под узлом MegaBlocks и на панели инструментов.

Совет
Почему мой узел MegaBlocks пуст?
Рекомендуется проверить готов ли мой локализационный сервис к использованию?
На этом этапе цели отслеживания block сгенерированы. Каждый дочерний узел, начинающийся с Block_ под узлом MegaBlocks, представляет собой цель отслеживания block.
Загрузка модели block
Нажмите Загрузить выбранный Block:

После загрузки Block отобразится в окне Scene.

Автоматическое добавление целей отслеживания при успешной локализации
Для использования этого метода необходимо настроить BlockHolder.BlockRootSource на Internal или Mixed.
В этих режимах, если локализуется новый block и под узлом BlockHolder.BlockRoot его нет, этот новый block будет автоматически добавлен под узел BlockHolder.BlockRoot. Если BlockHolder.BlockRoot не существует, он будет создан автоматически.
Совет
При автоматическом добавлении целей отслеживания во время успешной локализации нельзя загрузить модель блока, можно добавить только цель отслеживания block.
Добавление целей отслеживания через скрипт
Для использования этого метода необходимо настроить BlockHolder.BlockRootSource на Internal или Mixed; в этом случае, если BlockHolder.BlockRoot не существует, он будет создан автоматически. Или можно заранее указать объект BlockHolder.BlockRoot в редакторе, когда BlockHolder.BlockRootSource установлен в External.
Примечание
Если block отсутствует в локализационном сервисе, он не сможет быть локализован, даже если добавлен в сцену через скрипт.
Можно использовать метод BlockHolder.Hold для добавления нового блока под узел BlockHolder.BlockRoot. Этот метод обычно используется при работе с файлами аннотаций ema, когда скрипт считывает информацию аннотации и добавляет block.
Например, следующий фрагмент кода показывает, как использовать информацию из файла аннотации для добавления block:
foreach (var item in ema.blocks)
{
var info = new BlockController.BlockInfo { ID = item.id.ToString(), Timestamp = item.timestamp };
if (!item.keepTransform && item.location.OnSome)
{
blockHolder.Hold(info, item.location.Value);
}
else
{
blockHolder.Hold(info, item.transform.ToUnity());
}
}
Совет
При добавлении целей отслеживания во время выполнения через скрипт нельзя загрузить модель блока, можно добавить только цель отслеживания block.