Integración por Código
Cuando la integración sin código (componentes de escena como TriggererAction y StepChecker) no es suficiente, puedes controlar el flujo y reaccionar a sus eventos directamente desde tu propio código C#.
Controlar el flujo
El flujo se controla llamando métodos de FluxManager, por ejemplo GetSequences, LoadSequence o StartSequence, entre otros expuestos por su API pública.
Reaccionar a eventos del sistema
El sistema expone eventos estáticos en FluxManager, Action y FirebaseInstance a los que puedes suscribirte para reaccionar a lo que ocurre en el flujo (cambios de paso, acciones gatilladas, fin de una secuencia, etc.) sin acoplarte a componentes de escena.
Un caso de uso típico es actualizar una UI de progreso propia suscribiéndote a varios eventos a la vez:
using Imova.Flux;
public class ProgresoUI : MonoBehaviour
{
private void OnEnable()
{
FluxManager.OnActivateStep += HandleActivateStep;
FluxManager.OnTriggerActionSequence += HandleTriggerAction;
FluxManager.OnFinishedSequence += HandleFinishedSequence;
}
private void OnDisable()
{
FluxManager.OnActivateStep -= HandleActivateStep;
FluxManager.OnTriggerActionSequence -= HandleTriggerAction;
FluxManager.OnFinishedSequence -= HandleFinishedSequence;
}
private void HandleActivateStep(Step step)
{
// Actualizar indicador de paso actual en la UI de progreso.
}
private void HandleTriggerAction(Step step, Action action)
{
// Marcar la acción como completada en la UI de progreso.
}
private void HandleFinishedSequence(Sequence sequence)
{
// Mostrar pantalla de resumen/fin de secuencia.
}
}
Este enfoque te permite construir cualquier lógica propia (analítica, UI de progreso, integraciones externas) sin modificar el núcleo del sistema, simplemente escuchando lo que ya publica.