Estrategias de active control para target y origin
Con el siguiente contenido, conocerá las estrategias predeterminadas para mostrar y ocultar objetos bajo target y origin, y cómo ajustarlas según sea necesario.
Antes de comenzar
- Lea Target para conocer los conceptos básicos, estados y ciclo de vida de target.
- Lea XR Origin para conocer los conceptos básicos, composición y ciclo de vida de XR Origin.
Active control y tipos de estrategia de control
Durante la ejecución de session, target y origin pasan por cambios de estado como tracking y lost. Mediante estrategias de active control, se puede gestionar automáticamente el comportamiento de mostrar y ocultar objetos bajo target y origin.
En Unity, el componente ActiveController se encarga de gestionar automáticamente el estado GameObject.activeSelf de los objetos target y orign, para que el contenido se muestre después de que target sea seguido o motion tracking empiece a seguir, y se oculte cuando target se pierde o antes de que motion tracking se inicialice correctamente.
ActiveController proporciona dos estrategias de active control diferentes:
- ActiveWhileTracked: al ser seguido, GameObject se activa (GameObject.activeSelf se establece en
true); cuando se pierde tracking, GameObject se desactiva (GameObject.activeSelf se establece enfalse). - ActiveAfterFirstTracked: antes del primer tracking, GameObject se desactiva (GameObject.activeSelf se establece en
false); una vez seguido correctamente, GameObject permanece activado (GameObject.activeSelf se establece entrue).
De forma predeterminada, TargetController usa la estrategia ActiveWhileTracked, lo que significa que cuando target se sigue, target y su contenido se activan, y cuando se pierde tracking, target y su contenido se desactivan.
De forma predeterminada, XROriginChildController usa la estrategia ActiveAfterFirstTracked, lo que significa que antes de que motion tracking se inicialice correctamente, origin y su contenido se desactivan, y una vez que motion tracking se inicializa correctamente, origin y su contenido permanecen activados.
Seleccionar una estrategia de active control diferente
Abra el panel Inspector y seleccione Input en el menú desplegable Strategy.

Luego seleccione a la derecha la estrategia de active control necesaria para sobrescribir la estrategia predeterminada.

En scripts, puede sobrescribir la estrategia de active control predeterminada mediante la propiedad OverrideStrategy.
Por ejemplo, el siguiente código muestra cómo establecer la estrategia de active control de target en ActiveAfterFirstTracked:
target.ActiveController.OverrideStrategy = ActiveController.Strategy.ActiveAfterFirstTracked;
Los cambios en la estrategia active surten efecto inmediatamente y GameObject.activeSelf se actualiza según el estado de tracking actual.
Desactivar active control
Si necesita desactivar completamente active control, por ejemplo para controlarlo según sea necesario, puede desactivar active control deshabilitando el componente ActiveController.

En scripts, puede desactivar active control estableciendo la propiedad ActiveController.enabled.
target.ActiveController.enabled = false;
Los cambios en la propiedad ActiveController.enabled surten efecto inmediatamente, y GameObject.activeSelf ya no se actualiza según el estado de tracking. Si se habilita de nuevo el componente ActiveController, GameObject.activeSelf se actualizará según el estado de tracking actual.