public void PerformTransition(Transition trans) { StateID id = currentState.GetNextState (trans); currentStateID = id; foreach (S_FSMState state in states) { if(state.ID == currentStateID) { currentState = state; currentState.DoBeforeEntering(); break; } } }
public void AddState(S_FSMState newState) { if (states.Count == 0) { states.Add(newState); currentState = newState; currentStateID = newState.ID; return; } foreach (S_FSMState knownState in states) { if(knownState.ID == newState.ID) { Debug.LogError("Error: State "+ newState.ID + " already in FSM"); } } states.Add(newState); }