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:
- ActiveWhileTracked: Cuando está siendo rastreado, GameObject se activa (GameObject.activeSelf se establece en
true); cuando se pierde el seguimiento, GameObject se desactiva (GameObject.activeSelf se establece enfalse). - ActiveAfterFirstTracked: Antes del primer seguimiento, GameObject permanece desactivado (GameObject.activeSelf se establece en
false); una vez rastreado con éxito, GameObject permanece activado continuamente (GameObject.activeSelf se establece entrue).
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

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

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.

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.