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}); } }