Example #1
0
    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;
            }
        }
    }
Example #2
0
    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);
    }