Table of Contents

Estrategia de control activo para target y origin

A través del siguiente contenido, aprenderá sobre la estrategia predeterminada de visualización y ocultamiento de objetos bajo target y origin, y cómo ajustarla según sea necesario.

Antes de comenzar

  • Lea Target para comprender los conceptos básicos, estados y ciclo de vida de target.
  • Lea XR Origin para comprender los conceptos básicos, composición y ciclo de vida de XR Origin.

Control activo y tipos de estrategias de control

Durante la ejecución de la sesión, target y origin experimentan cambios de estado como seguimiento y pérdida. A través de la estrategia de control activo, se puede gestionar automáticamente el comportamiento de visualización y ocultamiento de los objetos bajo target y origin.

En Unity, el componente ActiveController se encarga de gestionar automáticamente el estado GameObject.activeSelf de los objetos de target y origin, para mostrar el contenido cuando target es rastreado o el seguimiento de movimiento comienza a rastrear, y ocultar el contenido antes de que target se pierda o el seguimiento de movimiento se inicialice correctamente.

ActiveController ofrece dos estrategias diferentes de control activo:

Por defecto, TargetController utiliza la estrategia ActiveWhileTracked, lo que significa que cuando target es rastreado, target y su contenido se activan, mientras que cuando se pierde el seguimiento, target y su contenido se desactivan.

Por defecto, XROriginChildController utiliza la estrategia ActiveAfterFirstTracked, lo que significa que antes de que el seguimiento de movimiento se inicialice correctamente, origin y su contenido permanecen desactivados, y una vez que el seguimiento de movimiento se inicializa con éxito, origin y su contenido permanecen activados continuamente.

Seleccionar diferentes estrategias de control activo

Abra el panel Inspector, en el menú desplegable Strategy seleccione Input

alt text

Luego, en el lado derecho, seleccione la estrategia de control activo deseada para anular la estrategia predeterminada.

alt text

En el script, se puede anular la estrategia de control activo predeterminada a través de la propiedad OverrideStrategy.

Por ejemplo, el siguiente código muestra cómo establecer la estrategia de control activo de target en ActiveAfterFirstTracked:

target.ActiveController.OverrideStrategy = ActiveController.Strategy.ActiveAfterFirstTracked;

Las modificaciones a la estrategia activa surten efecto inmediato y actualizan GameObject.activeSelf según el estado actual de seguimiento.

Desactivar el control activo

Si necesita deshabilitar completamente el control activo, por ejemplo, para gestionarlo manualmente según sea necesario, puede desactivar el componente ActiveController.

alt text

En el script, puede desactivar el control activo estableciendo la propiedad ActiveController.enabled.

target.ActiveController.enabled = false;

Los cambios en la propiedad ActiveController.enabled surten efecto inmediato y ya no actualizarán GameObject.activeSelf según el estado de seguimiento. Si vuelve a habilitar el componente ActiveController, GameObject.activeSelf se actualizará según el estado de seguimiento actual.