Nuevo Modo de Flujo
FluxState es una clase abstracta que define el contrato que debe cumplir cualquier "modo" de flujo (por ejemplo, el modo Secuencial o el modo Libre). Si necesitas un comportamiento distinto a los ya incluidos —otro criterio para determinar el orden de los pasos, otra forma de validar acciones gatilladas, otra lógica de avance—, la vía soportada es crear una subclase propia de FluxState e implementar sus miembros abstractos.
Subclasificar FluxState
using System.Collections.Generic;
using Imova.Flux;
public class MiFluxStateCustom : FluxState
{
public override FluxStateMode Mode => FluxStateMode.Sequential; // o FluxStateMode.Free
public override void OnInit() { }
public override void OnEnter() { }
public override void BeforeCheckTriggerAction(Step step, List<string> uidActionList) { }
public override int CheckTriggerAction(Step step, List<string> uidActionList, bool checkOrder, out bool isCorrect)
{
isCorrect = false;
return -1;
}
public override void ActivateNextStep(int indexStep) { }
public override void OnExit() { }
}
Como referencia ya existente en el sistema, revisa las implementaciones Default_FluxState (modo Secuencial) y FreeMode_FluxState (modo Libre): ambas siguen exactamente este mismo contrato y son el mejor punto de partida para entender qué se espera de cada método.
Pasos para integrar el nuevo estado
-
Adjuntar el componente: agrega tu script
MiFluxStateCustomcomo componente de unGameObjecthijo del prefabFluxManager, junto a los estados existentes bajo el contenedorStates. -
Asignar datos de configuración: crea (o reutiliza) un asset
FluxAssetDatapropio para este estado, de forma que su configuración sea editable desde el Inspector igual que los estados incluidos. -
Activar el estado en runtime: para que el
FluxManagercomience a usar tu estado, invoca:FluxManager.Instance.SetState("mi_uid");donde
"mi_uid"corresponde al identificador configurado para tu estado.