private void Awake() { fsm = new FSMSystem <PlayerST, PlayerSN> (); var idle = new PlayerIdle(PlayerSN.Idle); idle.AddTransition(PlayerST.InputA, PlayerSN.Run); var run = new PlayerRun(PlayerSN.Run); run.AddTransition(PlayerST.InputB, PlayerSN.Idle); fsm.AddState(idle); fsm.AddState(run); fsm.SetCurrentState(PlayerSN.Idle); Debug.Log(fsm.states.Count); }