Table of Contents

Cambio automático de objetos Unity XR en escenas de Unity

Los componentes XR de Unity (incluyendo AR Foundation) tienen soporte limitado para dispositivos. Para usar AR Foundation en dispositivos compatibles mientras se mantiene la funcionalidad AR en muchos otros dispositivos, EasyAR proporciona la función de cambio automático de objetos Unity XR. A continuación se describe cómo esta función modifica los objetos de escena y cómo usarla.

Antes de comenzar

Funcionalidad

Dado que AR Foundation de Unity en móviles se implementa sobre ARCore y ARKit, solo funciona en dispositivos limitados, especialmente en muchos teléfonos Android chinos donde no es usable. Por lo tanto, generalmente se recomienda habilitar AR Foundation y sus scripts relacionados solo en dispositivos compatibles. La función de cambio automático de objetos Unity XR implementa esta operación, diseñada principalmente para AR móvil, y se desactiva por defecto en dispositivos de realidad virtual.

Cuando la función está completamente habilitada:

Por defecto, la función se habilita bajo estas condiciones:

  • Habilitado en Windows/Mac.
  • Habilitado si el loader de AR móvil (ARKit/ARCore) está activo al iniciar el conmutador.
  • Deshabilitado si existen otros loaders además de AR móvil (ARKit/ARCore) al iniciar el conmutador, pero ninguno está activo.
Nota

Los componentes de XR Interaction Toolkit no están controlados por esta función, y su compatibilidad con EasyAR no está verificada. Teóricamente, las funcionalidades que solo usan el GameObject Unity.XR.CoreUtils.XROrigin y su Camera deberían funcionar. Si hay comportamientos anómalos, prueba configurando ARSession.ARCenterMode como ARSession.ARCenterMode.SessionOrigin. Si persisten los problemas, implementa un control personalizado para los componentes de XR Interaction Toolkit, desactivándolos cuando FrameSource no herede de ARFoundationFrameSource.

Método de configuración

Esta función puede habilitarse o deshabilitarse mediante las opciones en Project Settings > EasyAR > Sense > Unity XR > Unity XR Auto Switch.

texto alt

Las opciones configuran el comportamiento así:

  • Editor: Opciones para modo edición
  • Player: Opciones para modo ejecución
    • Enable: Habilita el control en tiempo de ejecución. Nota: Al desactivar esta opción, los componentes deshabilitados en modo edición no se restaurarán.
    • Enable If Desktop: Habilita en Windows/Mac.
    • Enable If Mobile AR On Startup: Habilita si el loader de AR móvil (ARKit/ARCore) está activo al iniciar el conmutador. Normalmente requiere que Initialize XR on Startup en Project Settings > XR Plug-in Management esté seleccionado.
    • Disable If Non Mobile AR Post Startup: Deshabilita si existen otros loaders además de AR móvil (ARKit/ARCore) al iniciar el conmutador, pero ninguno está activo. Usado típicamente cuando Initialize XR on Startup en Project Settings > XR Plug-in Management no está seleccionado.
    • Restore AR Session When Disabled: Cuando la función está deshabilitada, restaura (habilita) todos los UnityEngine.XR.ARFoundation.ARSession desactivados (incluso si no los desactivó EasyAR). Útil para restaurar componentes deshabilitados durante la edición.

Usar métodos de control personalizados

Si necesitas personalizar la activación/desactivación de componentes o EasyAR interfiere con algún componente:

  1. Desactiva UnityEngine.XR.ARFoundation.ARSession en el editor (se ejecuta antes que otros scripts)
  2. Antes de que AR Foundation comience, desactiva todos los componentes de Unity XR Core, AR Foundation y cualquier componente/función relacionado que necesites controlar
  3. Si durante easyar.ARSession.Assemble() se selecciona ARCoreARFoundationFrameSource o ARKitARFoundationFrameSource, habilita los componentes/funciones previamente desactivados antes de que finalice StartSession(). Se recomienda hacerlo en el manejador del evento easyar.ARSession.AssembleUpdate
  4. Si se selecciona otro FrameSource durante easyar.ARSession.Assemble(), mantén los componentes desactivados

Temas relacionados