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
_uidStepconfigurado 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
| Propiedad | Tipo | Descripción |
|---|---|---|
_uidStep | string | UID del Step que este componente observa. |
_checkOnStart | bool | Si es true, ejecuta un chequeo del estado del paso en Start(). |
_checkOnStartSequence | bool | Si es true, ejecuta un chequeo cuando la secuencia inicia. |
_autoCheck | bool | Si es true, el componente se suscribe automáticamente a los eventos de cambio de paso de FluxManager para chequear sin intervención manual. |
_checkWithDelay | bool | Si es true, el chequeo se ejecuta luego de un retardo (_delay) en lugar de inmediatamente. |
_delay | float | Segundos 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
| Evento | Delegate | Se dispara cuando... |
|---|---|---|
OnActiveStep | UnityEvent | El paso identificado por _uidStep es el paso activo del flujo. |
OnDeactivePreviousStep | UnityEvent | El paso identificado por _uidStep era el paso activo y el flujo avanzó a otro paso. |
OnStepNotFound | UnityEvent | El 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.