コード例 #1
0
    void UpdateFSM(FiniteStateMachine fsm)
    {
        if(fsm == FSM)return;
        Debug.Log("Updating FSM editor w/ new FSM");

        FSM = fsm;
        StateWindowMap.Clear();
        StateWindows.Clear();
        Transitions.Clear();
        if(FSM == null)return;

        List<FiniteState> states;
        List<StateTransitionState> transitions;
        FSM.GetGraph(out states, out transitions);

        foreach(FiniteState state in states){
            Debug.Log("Adding new state <" + state.StateName + ">");

            AddStateWindow(state);
        }
        foreach(StateTransitionState sts in transitions){
            Debug.Log("Adding new transition from <" + sts.StartState.StateName + "> to <" + sts.EndState.StateName + ">");
            Transitions.Add(new TransitionPair{fromState = sts.StartState,toState = sts.EndState});
        }
    }