Saltar al contenido principal

StepChecker

Resumen

Namespace Imova.Flux. Clase StepChecker : MonoBehaviour. Es un componente de escena (no un singleton).

Su responsabilidad es observar el estado de un Step específico dentro del flujo activo y reaccionar a sus cambios —activación, desactivación o ausencia del paso— mediante UnityEvents configurables desde el Inspector, sin requerir código adicional. Complementa a TriggererAction: mientras este último envía interacciones hacia el sistema, StepChecker recibe el estado del sistema y lo traduce en efectos sobre la escena (mostrar/ocultar UI, activar objetos, disparar animaciones, etc.).

Cuándo usarla

  • Para mostrar u ocultar un panel de UI cuando un paso específico se activa o desactiva.
  • Para activar/desactivar objetos de escena (props, marcadores, efectos) en sincronía con el avance del flujo.
  • Para reaccionar cuando un _uidStep configurado no corresponde a ningún paso existente (por ejemplo, para detectar errores de configuración en tiempo de ejecución).
  • Cuando se necesita un chequeo con retardo (por ejemplo, esperar a que una transición de UI termine antes de reaccionar al cambio de paso).

Propiedades

PropiedadTipoDescripción
_uidStepstringUID del Step que este componente observa.
_checkOnStartboolSi es true, ejecuta un chequeo del estado del paso en Start().
_checkOnStartSequenceboolSi es true, ejecuta un chequeo cuando la secuencia inicia.
_autoCheckboolSi es true, el componente se suscribe automáticamente a los eventos de cambio de paso de FluxManager para chequear sin intervención manual.
_checkWithDelayboolSi es true, el chequeo se ejecuta luego de un retardo (_delay) en lugar de inmediatamente.
_delayfloatSegundos de espera antes de ejecutar el chequeo, cuando _checkWithDelay es true.

Métodos

void CheckActiveStep()

Evalúa el estado actual del paso identificado por _uidStep contra el flujo activo y dispara el UnityEvent correspondiente (OnActiveStep, OnDeactivePreviousStep u OnStepNotFound). Si _checkWithDelay está activo, la evaluación se posterga _delay segundos.

Nota: el chequeo con retardo depende de DOTween (DG.Tweening.DOVirtual.DelayedCall). Si el paquete DOTween no está presente en el proyecto, este script no compila.

Eventos

EventoDelegateSe dispara cuando...
OnActiveStepUnityEventEl paso identificado por _uidStep es el paso activo del flujo.
OnDeactivePreviousStepUnityEventEl paso identificado por _uidStep era el paso activo y el flujo avanzó a otro paso.
OnStepNotFoundUnityEventEl UID configurado en _uidStep no corresponde a ningún Step registrado.

Ejemplo de código

Para mostrar/ocultar un panel de UI cuando un paso específico se activa: agregar StepChecker al GameObject del panel (o a uno de control), configurar _uidStep con el UID del paso a observar, activar _autoCheck, y en el Inspector conectar el evento OnActiveStep() para llamar a gameObject.SetActive(true) sobre el panel. De forma análoga, se puede conectar OnDeactivePreviousStep() a gameObject.SetActive(false) para ocultarlo cuando el flujo avanza.

Ver también