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));
 }