Table of Contents

Guía de migración de easyar sense unity plugin

Este artículo describe cómo migrar desde versiones anteriores de easyar sense unity plugin a la nueva versión.

Declaración de compatibilidad

A partir de la versión 4000, EasyAR Sense Unity Plugin sigue el control de versiones de paquetes (usando Semantic Versioning) requerido por Unity, y la compatibilidad se puede determinar según el número de versión.

4.7 es una versión de actualización gradual, y ninguna de las dos versiones 4.7 son compatibles entre sí.

Para versiones anteriores a 4.7, solo el tercer número de versión indica compatibilidad hacia atrás; los cambios en los dos primeros números de versión indican incompatibilidad. Por ejemplo, 4.6.2 es compatible con 4.6.1, pero 4.6.0 no es compatible con 4.5.0.

Advertencia

Modificar el archivo tgz o no actualizar completamente todo el complemento después de descomprimirlo resultará en incompatibilidad.

Guía general de migración

Para migrar a la nueva versión, primero debe eliminar el paquete de plugin de la versión antigua y agregar el nuevo paquete usando la Package Manager window.

Se recomienda seguir los pasos a continuación:

  1. Cierre Unity que está en uso.
  2. Elimine el directorio de compilación de plataforma generado por Unity al empaquetar la aplicación.
  3. Vuelva a abrir el proyecto de Unity y elimine la versión antigua de EasyAR Sense Unity Plugin del proyecto.
  4. Importe la nueva versión de EasyAR Sense Unity Plugin.

Nota

Los archivos de ejemplo proporcionados por el plugin no garantizan la compatibilidad entre versiones. Después de actualizar el plugin, es posible que los ejemplos importados al proyecto no funcionen correctamente. Se recomienda eliminar los ejemplos de la versión antigua antes de realizar la operación.

EasyAR contiene archivos de biblioteca nativos. Si se ejecutaron funciones de la biblioteca antes de la eliminación o reemplazo (también se invocan durante el empaquetado), estos archivos de biblioteca serán bloqueados por el sistema y no se podrán eliminar ni reemplazar.

Importante

Antes de eliminar la versión antigua, debe asegurarse de que no se esté ejecutando ninguna escena en el editor ni empaquetando una aplicación para ninguna plataforma. Por lo general se recomienda cerrar Unity antes de eliminar o reemplazar el paquete, y realizar el reemplazo inmediatamente después de volver a abrirlo.

Antes de volver a empaquetar con el nuevo plugin, debe eliminar primero el directorio de compilación de plataforma generado por Unity, incluido el directorio del proyecto Gradle generado al empaquetar para Android y el directorio de Xcode generado al empaquetar para iOS.

Consejo

Por lo general, estos directorios pueden estar dentro de la carpeta Library del proyecto de Unity (por ejemplo Library/Bee/Android/Prj/IL2CPP/Gradle), pero pueden diferir entre distintas versiones de Unity.

Si ha empaquetado antes pero no encuentra el directorio de la plataforma correspondiente, se recomienda eliminar toda la carpeta Library.

Si aparece una excepción SchemaHashNotMatched después de la migración, generalmente hay dos posibilidades

  1. Las operaciones anteriores no se realizaron correctamente, lo que provocó que la actualización fallara o estuviera incompleta, o que el directorio de compilación generado por Unity no se actualizó correctamente (tenga en cuenta que si no lo elimina manualmente, es muy probable que ocurra un error). Se recomienda seguir los pasos sugeridos para realizar la operación o compilar nuevamente usando un proyecto sin caché de Library.
  2. Modificó manualmente el archivo tgz de EasyAR o no actualizó completamente todo el plugin después de descomprimirlo. En este caso, EasyAR no puede garantizar la disponibilidad, necesita volver a descargar el paquete correcto e importarlo.
Importante

Debido a que la ubicación de los archivos de biblioteca de EasyAR Sense después del empaquetado puede cambiar, si conserva los proyectos Gradle o Xcode generados por Unity, debe eliminar con anticipación todos los archivos relacionados con EasyAR, como EasyAR.aar, libEasyAR.so, easyar.framework, etc.

Migración a la versión 4003

Consejo

Los cambios incompatibles solo se aplican al usar Mega. El uso de otras funciones no se ve afectado.

Al migrar de la versión 4002 a 4003, además de las pautas generales de migración mencionadas anteriormente, preste atención al siguiente contenido.

Cambios en el flujo de desarrollo de mega

En la versión 4003, el flujo de desarrollo de mega ha experimentado cambios significativos. si has utilizado otras funciones de EasyAR Sense Unity Plugin antes, estarás más familiarizado con este flujo.

Los principales cambios incluyen los siguientes contenidos:

  • com.easyar.mega cambio de función del paquete
    • ya no es necesario importar este paquete para usar mega; pero cuando necesites cargar modelos de block en el editor para ayudar a colocar el contenido, todavía necesitas importarlo.
    • Se ha añadido la opción de configuración de Mega Block/Landmark support: es necesario activarlo antes de empaquetar .
  • Cambios en las funciones del editor
    • la carga de block mesh y otros datos ya no requiere la herramienta Mega Studio, incluso si añades herramientas de anotación en la escena, no se pueden utilizar para el desarrollo en unity.
    • El panel de componentes de MegaBlockController proporciona directamente las funciones de editor de block, la gestión es más directa.
    • herramienta de verificación de session proporciona más opciones de control prácticas para mega, reemplazando las funciones originales de Mega Studio y la zona de prueba del editor de MegaTrackerFrameFilter.
  • Cambios en el comportamiento de target

Cuando migres de 4002 a 4003, debes reorganizar principalmente los objetos block en la escena, reemplaza el grupo de nodos generado originalmente por Mega Studio por el componente MegaBlockController:

  1. Elimina el grupo de nodos generado originalmente por Mega Studio en la escena, incluyendo el objeto MegaBlocks y todos los objetos block bajo él.
    • si hay nodos de anotación, también debes eliminarlos.
    • si hay objetos de contenido bajo el objeto block, se recomienda mover primero los objetos de contenido a otros nodos, presta atención a mantener la transformación local sin cambios.
  2. Añade objetivo de seguimiento mega en la escena.
    • si hay múltiples objetos block en la escena original, necesitas crear múltiples objetivos de seguimiento mega en la escena.
    • mueve los objetos de contenido que estaban originalmente bajo el objeto block al nuevo objetivo de seguimiento mega creado, presta atención a mantener la transformación local sin cambios.
    • presta atención a configurar el id de MegaBlockController.Source, este id debe mantenerse igual que el id del objeto block original para garantizar que se cargue correctamente en tiempo de ejecución.
    • presta atención a configurar MegaBlockController.Tracker para usar el MegaTrackerFrameFilter correcto.
  3. si hay nodos de anotación en la escena original, necesitas crear nodos similares a objetos 3D por ti mismo para reemplazarlos.
  4. si existe lógica de creación de block en scripts en el proyecto original, necesitas usar el método de añadir objetivo de seguimiento mega para reemplazarlo.
  5. Elimina el script inválido en el nodo hijo Mega Tracker (MegaTrackerFrameFilter) de AR Session (EasyAR).

Para la mayoría de los casos de uso, después de completar el reemplazo del nodo block, otros contenidos de la escena pueden funcionar correctamente sin necesidad

Cambios en la interfaz

Módulo de funcionalidad API v4002 API v4003 Instrucciones de uso
Mega MegaTrackerFrameFilter.BlockHolder MegaBlockController.Tracker Añadir objetivo de seguimiento Mega
Configurar el cargador en el nodo block en lugar de cargar el nodo raíz del block en el nodo tracker.
Mega MegaTrackerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) MegaTrackerFrameFilter.SwitchEndPoint Controlar el proceso de seguimiento Mega
Mega MegaTrackerFrameFilter.SimulatorLocation MegaTrackerFrameFilter.SimulatorLocation
Mega CloudLocalizerFrameFilter.BlockHolder MegaBlockController.Tracker Añadir objetivo de seguimiento Mega
Configurar el cargador en el nodo block en lugar de cargar el nodo raíz del block en el nodo tracker.
Mega CloudLocalizerFrameFilter.SwitchEndPoint(ExplicitAddressAccessData, BlockRootController) CloudLocalizerFrameFilter.SwitchEndPoint Controlar el proceso de seguimiento Mega
Mega CloudLocalizerFrameFilter.SimulatorLocation CloudLocalizerFrameFilter.SimulatorLocation
Mega MegaLocalizationResponse.Blocks MegaLocalizationResponse.Blocks Controlar el proceso de seguimiento Mega
Mega Support EasyAR.Mega.Scene.BlockHolder - Función eliminada
Mega Support EasyAR.Mega.Scene.BlockHolder.MultiBlock - Función eliminada
Mega Support EasyAR.Mega.Scene.BlockHolder.BlockRoot MegaBlockController.Tracker Añadir objetivo de seguimiento Mega
Configurar el cargador en el nodo block en lugar de cargar el nodo raíz del block en el nodo tracker.
Mega Support EasyAR.Mega.Scene.BlockHolder.BlockRootSourceType - Función eliminada
Mega Support EasyAR.Mega.Scene.BlockHolder.MultiBlockStrategy - Función eliminada
Mega Support EasyAR.Mega.Scene.BlockActiveController ActiveController Estrategia de control activo para target
Mega Support EasyAR.Mega.Scene.BlockController MegaBlockController Añadir objetivo de seguimiento Mega
Mega Support EasyAR.Mega.Scene.BlockRootController - Función eliminada
Mega Support EasyAR.Mega.Scene.LocalTransform LocalTransform
Mega Support EasyAR.Mega.Scene.Location Location
Mega Support EasyAR.Mega.Scene.LocationConverter - Función eliminada
Mega Support EasyAR.Mega.Scene.AnnotationNode - Función eliminada
Mega Support EasyAR.Mega.Scene.AnnotationGroup - Función eliminada
Mega Support EasyAR.Mega.Scene.NavPointGraph - Función eliminada

Migración a la versión 4002

Al migrar de la versión 4001 a la 4002, además de las pautas generales de migración mencionadas anteriormente, se debe prestar atención a lo siguiente.

Cambio de interfaz

Módulo de funcionalidad API v4001 API v4002 Instrucciones de uso
Funcionalidad auxiliar Image.Image(Buffer, PixelFormat, int, int) Image.create

Migración a la versión 4001

Consejo

Solo hay cambios incompatibles al usar Mega, el uso de otras funciones no se ve afectado.

Al migrar de la versión 4000 a 4001, además de las pautas generales de migración mencionadas anteriormente, también se deben tener en cuenta los siguientes puntos.

Cambio de interfaz

Módulo de función API v4000 API v4001 Instrucciones de uso
Mega MegaTrackerFrameFilter.ResultPoseType.EnableLocalization MegaTrackerFrameFilter.EnableLocalization Controlar el proceso de seguimiento de Mega
Mega MegaTrackerFrameFilter.ResultPoseType.EnableStabilization - Función eliminada

Migración de versiones históricas

Al migrar desde versiones anteriores a la 4000, consulta lo siguiente:

Temas relacionados