예제 #1
0
파일: FSM.cs 프로젝트: Hengle/GameUtil
        public iFSMState MakeTransition(int event_code = 0)
        {
            iFSMState next = null;

            transition_table.TryGetValue(event_code, out next);
            return(next);
        }
예제 #2
0
파일: FSM.cs 프로젝트: Hengle/GameUtil
 public void AddTransition(iFSMState from, iFSMState to, int event_code = 0)
 {
     if (transition_index.ContainsKey(from) == false)
     {
         transition_index[from] = new FSMStateTransitions();
     }
     transition_index[from].AddTransition(to, event_code);
 }
예제 #3
0
파일: FSM.cs 프로젝트: Hengle/GameUtil
        public bool MakeTransition(int event_code = 0)
        {
            iFSMState next = transition_index[active_state].MakeTransition(event_code);

            if (next == null)
            {
                Debug.Log("Can not make transition from " + active_state + " for event " + event_code);
                return(false);
            }

            active_state.ExitState();
            active_state = next;
            active_state.EnterState();
            return(true);
        }
예제 #4
0
파일: FSM.cs 프로젝트: Hengle/GameUtil
 public void StartFSM(iFSMState first_state)
 {
     active_state = first_state;
     active_state.EnterState();
     ResumeFSM();
 }
예제 #5
0
파일: FSM.cs 프로젝트: Hengle/GameUtil
 public void AddTransition(iFSMState state, int event_code = 0)
 {
     transition_table[event_code] = state;
 }