Table of Contents

Cambiar automáticamente objetos Unity XR en escenas Unity

Los componentes XR de Unity (incluido AR Foundation) tienen soporte limitado de dispositivos. Para usar AR Foundation en dispositivos compatibles y, al mismo tiempo, poder usar funciones AR en muchos otros dispositivos, EasyAR proporciona una función para cambiar automáticamente objetos Unity XR. El siguiente contenido describe los cambios que esta función realiza en los objetos de la escena y cómo usarla.

Antes de comenzar

Introducción a la función

Como la implementación subyacente de AR Foundation de Unity en teléfonos móviles es ARCore y ARKit, solo puede usarse en dispositivos limitados, especialmente no está disponible en muchos teléfonos Android domésticos chinos. Por ello, normalmente se recomienda habilitar AR Foundation y los scripts de funciones relacionados solo en dispositivos compatibles. La función de cambio automático de objetos Unity XR implementa esta operación, está diseñada principalmente para mobile AR y, con la configuración predeterminada, se deshabilita en headsets.

Cuando la función completa está habilitada,

Con la configuración predeterminada, las condiciones para habilitar la función son:

  • Se habilita en Windows/Mac.
  • Al iniciar el switcher, si el loader de mobile AR (ARKit/ARCore) está activo, se habilita.
  • Al iniciar el switcher, si existen otros loaders distintos de mobile AR (ARKit/ARCore), pero ninguno está activo, se deshabilita.
Nota

Los componentes de XR Interaction Toolkit no están controlados por esta función, y no se ha verificado si están disponibles en EasyAR. En teoría, las funciones que solo usan el GameObject Unity.XR.CoreUtils.XROrigin y su Camera deberían funcionar normalmente. Si el comportamiento es anormal, puede intentar establecer ARSession.ARCenterMode en ARSession.ARCenterMode.SessionOrigin. Si la función sigue sin ser normal, debe implementar un control personalizado para los componentes de XR Interaction Toolkit y deshabilitar los componentes relacionados cuando FrameSource no herede de ARFoundationFrameSource.

Método de configuración

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

alt text

El comportamiento de las opciones de la imagen es el siguiente:

  • Editor: opciones de modo de edición
  • Player: opciones de modo runtime
    • Enable: habilita el control runtime. Nota: cuando esta opción está desactivada, los componentes deshabilitados en modo de edición no se restaurarán durante runtime.
    • Enable If Desktop: habilita en Windows/Mac.
    • Enable If Mobile AR On Startup: al iniciar el switcher, si el loader de mobile AR (ARKit/ARCore) está activo, se habilita. Normalmente esta opción requiere que Initialize XR on Startup en Project Settings > XR Plug-in Management esté marcado.
    • Disable If Non Mobile AR Post Startup: al iniciar el switcher, si existen otros loaders distintos de mobile AR (ARKit/ARCore), pero ninguno está activo, se deshabilita. Normalmente esta opción se usa cuando Initialize XR on Startup en Project Settings > XR Plug-in Management no está marcado.
    • Restore AR Session When Disabled: cuando la función está deshabilitada, restaura (habilita) todos los UnityEngine.XR.ARFoundation.ARSession deshabilitados (independientemente de si EasyAR los deshabilitó). Esta opción normalmente se usa para restaurar componentes deshabilitados durante la edición.

Usar un método de control personalizado

Si necesita personalizar el cambio de estos componentes, o si el comportamiento de EasyAR interfiere con el funcionamiento normal de ciertos componentes, asegúrese de desactivar estas opciones y personalice el cambio de componentes según las siguientes reglas básicas:

  1. Deshabilite UnityEngine.XR.ARFoundation.ARSession en el editor (se ejecuta antes que todos los demás scripts)
  2. Antes de que AR Foundation comience a funcionar, deshabilite todos los componentes Unity XR Core y AR Foundation, así como los componentes o funciones relacionados que deban controlarse
  3. Si durante el proceso easyar.ARSession.Assemble() se selecciona ARCoreARFoundationFrameSource o ARKitARFoundationFrameSource, habilite todos los componentes o funciones deshabilitados previamente antes de que StartSession() finalice; normalmente se recomienda hacerlo en la respuesta al evento easyar.ARSession.AssembleUpdate
  4. Si durante el proceso easyar.ARSession.Assemble() se selecciona otro FrameSource, mantenga el estado sin cambios

Temas relacionados