public FSMConditionTransition(FSMState targetState, Func <bool> transitionCondition) : base(targetState) => this.transitionCondition = transitionCondition;
public FSMTransition(FSMState targetState) => this.targetState = targetState;
public FSM(FSMState initState, params FSMState[] state) { currentState = initState; states.Add(initState); states.AddRange(state); }