Table of Contents

Agregar objetivos de seguimiento de Mega

Este artículo presenta cómo agregar objetivos de seguimiento de Mega y cómo cargar modelos de entorno en el editor de Unity para ayudar en el desarrollo.

Antes de comenzar

Nota

El siguiente contenido y herramientas solo se aplican al desarrollo de aplicaciones Unity usando EasyAR Mega.

Si estás desarrollando una mini-app, consulta crear y cargar anotaciones usando el editor de Unity (desarrollo de mini-apps).

Si solo deseas ver los resultados del mapeo Mega, consulta vista previa de malla 3D con textura en la guía de uso de Mega.

Si necesitas simular la ejecución para ver el efecto de localización pero no tienes un proyecto de aplicación Unity funcional, consulta vista previa de simulación en la guía de uso de Mega.

Objetivos de seguimiento de Mega

Los objetivos de seguimiento de Mega son objetos vacíos que contienen un componente BlockController, llamados block. En la escena, los blocks se organizan bajo un objeto vacío con el componente BlockRootController, cuyo nombre predeterminado es MegaBlocks. Todos los objetos block bajo MegaBlocks representan todos los objetivos de seguimiento en la biblioteca de localización actual.

alt text

En el desarrollo, a menudo se necesita usar modelos de block para ayudar a visualizar y colocar contenido 3D. Este modelo se puede cargar en la escena usando herramientas para facilitar la visualización y referencia.

alt text

La posición del modelo está alineada con el objetivo de seguimiento del block, por lo que puedes colocar contenido 3D directamente sobre el modelo.

Consejo

Los modelos se almacenan bajo el nodo de la herramienta, existen solo en modo editor y no se incluyen en la aplicación final.

Agregar objetivos de seguimiento en el editor

Este método requiere configurar BlockHolder.BlockRootSource como External (predeterminado) o Mixed.

alt text

Agregar la herramienta Block Viewer for Unity Developer

Haz clic derecho en un espacio vacío en la vista Hierarchy, y selecciona EasyAR Mega > Tool > Block Viewer for Unity Developer (Edit Mode) para agregar la herramienta Block Viewer para desarrollo en Unity.

alt text

Importante

Al desarrollar aplicaciones Mega con Unity, debes usar la herramienta Block Viewer for Unity Developer. Otras herramientas bajo el menú EasyAR Mega > Tool no son adecuadas para el desarrollo de aplicaciones Unity.

Aunque Annotation Tool tiene funcionalidad similar, parte de sus características se eliminarán en versiones futuras, por lo que no se recomienda su uso.

La función de anotación de Annotation Tool (solo la anotación en sí) se migrará próximamente a la web de EasyAR Developer Center; la carga de mallas de block y la colocación de modelos no se verán afectadas.

Después de agregar la herramienta, aparecerá un nodo EasyAR.Mega.BlockViewer (Dev) y un nodo MegaBlocks en la jerarquía de la escena.

alt text

Generar objetivos de seguimiento - block

Selecciona el nodo EasyAR.Mega.BlockViewer (Dev), en el panel Inspector ingresa la información de tu cuenta EasyAR e inicia sesión;

alt text

Haz clic en el botón a la derecha de Mega Cloud Service;

alt text

Selecciona el Servicio de localización Mega que deseas usar y haz clic en Aceptar.

alt text

Después de seleccionar el servicio, la lista de blocks en la biblioteca actual se mostrará bajo el nodo MegaBlocks y en el panel de la herramienta.

alt text

Consejo

¿Por qué mi MegaBlocks está vacío?

Verifica ¿está disponible mi biblioteca de localización?

En este punto ya se han generado los objetivos de seguimiento block. Cada nodo hijo que comienza con Block_ bajo el nodo MegaBlocks representa un objetivo de seguimiento block.

Cargar modelos de block

Haz clic en Cargar para seleccionar el Block:

alt text

Después de cargar, el Block se mostrará en la ventana Scene.

alt text

Agregar automáticamente objetivos de seguimiento al localizar con éxito

Este método requiere configurar BlockHolder.BlockRootSource como Internal o Mixed.

En estos modos, si se localiza un nuevo block y no existe ese block bajo el nodo BlockHolder.BlockRoot, este nuevo block se agregará automáticamente bajo BlockHolder.BlockRoot. Si BlockHolder.BlockRoot no existe, se creará automáticamente.

Consejo

Al agregar automáticamente objetivos de seguimiento durante la localización exitosa, no se pueden cargar modelos de block, solo se pueden agregar objetivos de seguimiento block.

Agregar objetivos de seguimiento mediante script

Este método requiere configurar BlockHolder.BlockRootSource como Internal o Mixed, en cuyo caso BlockHolder.BlockRoot se creará automáticamente si no existe. Alternativamente, puedes especificar previamente el objeto BlockHolder.BlockRoot en el editor cuando BlockHolder.BlockRootSource sea External.

Nota

Si el block no está en la biblioteca de localización, incluso si se agrega a la escena mediante script, no se podrá localizar.

Puedes usar el método BlockHolder.Hold para agregar un nuevo block bajo el nodo BlockHolder.BlockRoot. Este método se usa comúnmente con archivos de anotación ema, donde un script lee la información de anotación y luego agrega el block.

Por ejemplo, el siguiente fragmento de código muestra cómo usar la información del archivo de anotación para agregar blocks:

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());
    }
}
Consejo

Al agregar objetivos de seguimiento en tiempo de ejecución mediante scripts, no se pueden cargar modelos de block, solo se pueden agregar objetivos de seguimiento block.

Pasos siguientes

Temas relacionados