public void PerformTransition(fsmTransition transition) { if (transition == fsmTransition.DefaultTransition) { Debug.LogError("FSM ERROR: Cannot transition to the Default Transition!"); return; } fsmStateID id = currentState.GetOutputState(transition); if (id == fsmStateID.DefaultStateID) { Debug.LogError("FSM ERROR: Current State cannot use provided transition!"); return; } mCurrentStateID = id; foreach (FSMState state in mStates) { if (state.mStateID == currentStateID) { currentState.DoBeforeLeaving(); mCurrentState = state; currentState.DoBeforeEntering(); break; } } }
public fsmStateID GetOutputState(fsmTransition transition) { if (mTransitionStateIDMap.ContainsKey(transition)) { return mTransitionStateIDMap[transition]; } return fsmStateID.DefaultStateID; }
public void DeleteTransitionToState(fsmTransition transition) { if (transition == fsmTransition.DefaultTransition) { Debug.LogError("FSMState ERROR: Cannot Delete Transition on Default Transition!"); return; } if (mTransitionStateIDMap.ContainsKey(transition)) { mTransitionStateIDMap.Remove(transition); return; } Debug.LogError("FSMState ERROR: Transition to State not found! Please check your remove command is correct!"); }
public void AddTransitionToState(fsmTransition transition, fsmStateID stateID) { // Log error if the passed transition or state are incorrect if (transition == fsmTransition.DefaultTransition || stateID == fsmStateID.DefaultStateID) { Debug.LogError("FSMState ERROR: Transition or State are incorrect!"); return; } if (mTransitionStateIDMap.ContainsKey(transition)) { Debug.LogError("FSMState ERROR: That transition has already been used to direct to another state! Transition: " + transition.ToString()); return; } mTransitionStateIDMap.Add(transition, stateID); }
public void FSMTransitionPassthrough(fsmTransition transition) { mBasicAgentFSM.PerformTransition(transition); }
public void FSMTransitionPassthrough(fsmTransition transition) { fsm.PerformTransition(transition); }