Estrategias de control active para target y origin
A través del siguiente contenido, aprenderá las estrategias predeterminadas de visualización y ocultación de objetos bajo target y origin, y cómo ajustarlas 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.
Active control 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 active, se puede gestionar automáticamente el comportamiento de visualización y ocultación 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 seguido o cuando el seguimiento de movimiento comienza a rastrear, y ocultar el contenido cuando target se pierde o antes de que el seguimiento de movimiento se inicialice correctamente.
ActiveController ofrece dos estrategias de control active diferentes:
- ActiveWhileTracked: Cuando está siendo seguido, el GameObject se activa (GameObject.activeSelf se establece en
true); cuando se pierde el seguimiento, el GameObject se desactiva (GameObject.activeSelf se establece enfalse). - ActiveAfterFirstTracked: Antes del primer seguimiento, el GameObject está desactivado (GameObject.activeSelf se establece en
false); una vez seguido con éxito, el GameObject permanece activado continuamente (GameObject.activeSelf se establece entrue).
Por defecto, TargetController utiliza la estrategia ActiveWhileTracked, lo que significa que cuando target es seguido, 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 están desactivados, y una vez que el seguimiento de movimiento se inicializa con éxito, origin y su contenido permanecen activados continuamente.
Selección de diferentes estrategias de control active
Abra el panel Inspector, en el menú desplegable Strategy seleccione Input

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

En el script, puede anular la estrategia de control active predeterminada a través de la propiedad OverrideStrategy.
Por ejemplo, el siguiente código muestra cómo establecer la estrategia de control active de target en ActiveAfterFirstTracked:
target.ActiveController.OverrideStrategy = ActiveController.Strategy.ActiveAfterFirstTracked;
Los cambios en la estrategia active surten efecto inmediatamente y actualizan GameObject.activeSelf según el estado de seguimiento actual.
Desactivar el control active
Si necesita deshabilitar completamente el control active, por ejemplo, para gestionarlo manualmente según sea necesario, puede desactivar el componente ActiveController.

En el script, puede desactivar el control active estableciendo la propiedad ActiveController.enabled.
target.ActiveController.enabled = false;
Los cambios en la propiedad enabled surten efecto inmediatamente 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.