public FiniteStateMachine(FsmState <T>[] states, UnityEvent[] transitionEvents, FsmState <T> entryState) { fsmTable = new Table <FsmState <T>, UnityEvent, FsmState <T> >(states, transitionEvents); currentState = entryState; currentState.EnterState(); }
public void SetTransitionRelation(FsmState <T> sourceState, FsmState <T> targetState, UnityEvent transitionEvent) { fsmTable[sourceState, transitionEvent] = targetState; transitionEvent.AddListener(() => OnTransitionEventTrigger(transitionEvent)); }