Table of Contents

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:

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.

alt text

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

alt text

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.

alt text

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.