Permitir que el dispositivo de cabeza admita EasyAR
Este artículo explica cómo usar la plantilla de paquete de extensión para dispositivos de cabeza del EasyAR Sense Unity Plugin para desarrollar un paquete de extensión de EasyAR que admita dispositivos de cabeza.
Antes de comenzar
Antes de comenzar el desarrollo, es necesario comprender cómo usar el EasyAR Sense Unity Plugin.
- Inicio rápido
- Ejecutar los ejemplos AR Session, ImageTracking_Targets y SpatialMap_Dense_BallGame. Sus efectos de ejecución son similares en teléfonos y dispositivos de cabeza.
El desarrollo de complementos para dispositivos de cabeza involucra algunas funcionalidades básicas, es necesario comprender estos contenidos primero:
- Comprender AR Session
- Comprender fuente de datos de fotograma y fuente de datos de fotograma externa
Además, es necesario familiarizarse con cómo desarrollar un paquete de Unity.
Preparar el dispositivo para AR/MR
Preparar el sistema de seguimiento de movimiento/VIO
Asegúrese de que el error de seguimiento del dispositivo esté controlado. Algunas funcionalidades de EasyAR como Mega pueden reducir el error acumulado del dispositivo hasta cierto punto, pero grandes errores locales también pueden hacer que los algoritmos de EasyAR se vuelvan inestables. Generalmente, esperamos que la deriva del VIO esté dentro del 1‰.
Preparar el sistema de visualización
Asegúrese de que cuando un objeto virtual del mismo tamaño y contorno que un objeto real se coloca en el mundo virtual, y su relación de transformación relativa con la cámara virtual es la misma que la relación de transformación del objeto real correspondiente con el dispositivo, el objeto virtual se superponga correctamente en el objeto real, y que mover el dispositivo o girar la cabeza no rompa el efecto de visualización. Se puede hacer referencia al efecto de Vision Pro.
Preparar el SDK del dispositivo
Asegúrese de que ya exista una API que pueda proporcionar datos de fotograma de entrada externa. Estos datos deben generarse en dos y solo dos puntos de tiempo en el sistema, es necesario asegurarse de que no haya casos donde los datos no se puedan alinear.
Usar la plantilla del paquete de extensión para dispositivos de cabeza
Utilice la ventana Package Manager de Unity para instalar el complemento usando un archivo tarball local e importar EasyAR Sense Unity Plugin (paquete com.easyar.sense). Descomprima la plantilla de extensión para dispositivos de cabeza (paquete com.easyar.sense.ext.hmdtemplate) en el directorio Packages del proyecto de Unity y renombre la carpeta Samples~ a Samples.
En este momento debería ver una estructura de directorios como esta:
.
├── Assets
└── Packages
└── com.easyar.sense.ext.hmdtemplate
├── CHANGELOG.md
├── Documentation~
├── Editor
├── LICENSE.md
├── package.json
├── Runtime
└── Samples
└── Combination_BasedOn_HMD
Consejo
Si es necesario, puede usar cualquier método permitido por Unity para importar EasyAR Sense Unity Plugin y almacenar la plantilla de extensión para dispositivos de cabeza.
Si no usa la plantilla, también puede consultar la guía de Unity para crear paquetes personalizados para crear un nuevo paquete.
Si el SDK del dispositivo no está organizado usando paquetes de Unity, necesita descomprimir la plantilla de extensión para dispositivos de cabeza en la carpeta Assets de Unity, luego eliminar package.json y cualquier archivo con sufijo .asmdef de los archivos descomprimidos. Tenga en cuenta que, con este método de uso, los usuarios que utilicen simultáneamente el SDK del dispositivo y EasyAR no podrán obtener dependencias de versión razonables.
Completar la extensión de entrada en tiempo de ejecución
Siga el método crear una extensión de entrada para datos de imagen y movimiento del dispositivo, modifique Runtime/HMDTemplateFrameSource.cs y complete la extensión de entrada adaptada al dispositivo de cabeza. Este es el principal trabajo de desarrollo del paquete de extensión.
Completar el menú del editor
Modifique la cadena "HMD Template" en la clase MenuItems para que represente el nombre del dispositivo. Si necesita otras funcionalidades personalizadas en el editor, también puede agregar otros scripts.
Cuando los desarrolladores seleccionen AR Session (EasyAR) en la vista Hierarchy y hagan clic derecho, aparecerán estos elementos de menú:
EasyAR Sense>Extensions>Frame Source : [Device Name]: Agrega una fuente de datos de fotograma de este dispositivo a la sesión actual.EasyAR Sense>Extensions>Frame Source : [Device Name (keep it only)]: Agrega y mantiene solo una fuente de datos de fotograma de este dispositivo en la sesión actual.

Completar el ejemplo de aplicación
El ejemplo se encuentra en Samples/Combination_BasedOn_HMD. Por simplicidad, la plantilla de ejemplo no tiene código, toda la funcionalidad AR se completa mediante el contenido y la configuración de la escena.
Agregue contenido compatible con la ejecución del dispositivo a la escena.
Consejo
Si es necesario, también puede hacerlo al revés: usar una escena que pueda ejecutarse en el dispositivo y luego agregar los componentes de EasyAR y otros objetos de la escena de muestra.
Modifique los objetos diseñados para colocarse debajo del origen de la sesión.
Si hay un origen de sesión definido en la escena, mueva
EasyARPandayUIdebajo del nodo de origen.
EasyARPandaproporcionará una referencia para el comportamiento de seguimiento de movimiento del dispositivo, lo que ayudará a determinar la causa cuando el seguimiento sea inestable.El texto entre paréntesis en los nombres de estos objetos son sugerencias para el desarrollador de la extensión y se pueden eliminar:
(Move into Origin if there is any)(Move into Origin if there is any, set constraint source to your rendering camera)
Configure el comportamiento de los botones
HUD.Establezca el constraint source de
UIen la cámara virtual para asegurar que los botonesHUDfuncionen como se espera.
Configure la funcionalidad raycast del
Canvas.Modifique el
Canvasdebajo del nodoUIpara asegurar que el raycast funcione, garantizando que todos los botones e interruptores de la UI funcionen como se espera.La plantilla ya tiene preagregado un Tracked Device Graphic Raycaster de XR Interaction Toolkit debajo del nodo
Canvas. Se podrá ver después de importar el paquete correspondiente.
Si no se usa XR Interaction Toolkit al ejecutar en el dispositivo, se verá una advertencia de script faltante similar a la siguiente. Se puede eliminar y agregar el componente raycaster requerido por el dispositivo.

Pasos siguientes
- Antes de completar más el paquete de extensión, es necesario ejecutar la verificación (bring-up) de la extensión de entrada.
- Una vez completado todo, puede prepararse para publicar el paquete de extensión.