Saltar al contenido principal

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

  1. Adjuntar el componente: agrega tu script MiFluxStateCustom como componente de un GameObject hijo del prefab FluxManager, junto a los estados existentes bajo el contenedor States.

  2. Asignar datos de configuración: crea (o reutiliza) un asset FluxAssetData propio para este estado, de forma que su configuración sea editable desde el Inspector igual que los estados incluidos.

  3. Activar el estado en runtime: para que el FluxManager comience a usar tu estado, invoca:

    FluxManager.Instance.SetState("mi_uid");

    donde "mi_uid" corresponde al identificador configurado para tu estado.

Ver también