Table of Contents

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

В этой статье объясняется, как добавить цели отслеживания Mega и как загрузить модель окружения в редакторе Unity для помощи в разработке.

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

Примечание

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

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

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

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

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

Целью отслеживания Mega является пустой объект с компонентом BlockController, называемый block. В сцене блоки организованы под пустым объектом с компонентом BlockRootController, который по умолчанию называется MegaBlocks. Все объекты block под MegaBlocks представляют все цели отслеживания в текущем локализационном сервисе.

alt text

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

alt text

Положение модели выровнено с целью отслеживания блока, что позволяет размещать 3D-контент непосредственно на модели.

Совет

Модель хранится под узлом инструмента, существует только в режиме редактора и не включается в финальное приложение.

Добавление целей отслеживания в редакторе

Для использования этого метода необходимо настроить BlockHolder.BlockRootSource на External (по умолчанию) или Mixed.

alt text

Добавление инструмента Block Viewer for Unity Developer

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

alt text

Важно

При разработке приложений Mega на Unity обязательно используйте инструмент Block Viewer for Unity Developer. Другие инструменты в меню EasyAR Mega > Tool не подходят для разработки приложений Unity.

Хотя Annotation Tool имеет схожие функции, часть его функционала будет удалена в будущих версиях, поэтому его использование не рекомендуется.

Функция аннотирования (сама аннотация) в Annotation Tool скоро будет перенесена на веб-сайт центра разработки EasyAR, загрузка block mesh и размещение моделей не затронуты.

После успешного добавления инструмента в иерархии сцены появится узел EasyAR.Mega.BlockViewer (Dev) и узел MegaBlocks.

alt text

Генерация целей отслеживания — block

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

alt text

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

alt text

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

alt text

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

alt text

Совет

Почему мой узел MegaBlocks пуст?

Рекомендуется проверить готов ли мой локализационный сервис к использованию?

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

Загрузка модели block

Нажмите Загрузить выбранный Block:

alt text

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

alt text

Автоматическое добавление целей отслеживания при успешной локализации

Для использования этого метода необходимо настроить 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.

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

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