public void PerformnTransition(SoldierTransition trans) { if (trans == SoldierTransition.NullTransition) { Debug.Log("PerformnTransition 无法执行 NullTransition "); return; } SoldierStateID id = CurrentSoldierState.GetIDByTransition(trans); if (id == SoldierStateID.NullState) { Debug.Log("PerformnTransition 无法执行 NullState "); return; } foreach (AbsSoldierState s in statesList) { if (s.StateID == id) { CurrentSoldierState.DoBeforeLeaving(); CurrentSoldierState = s; CurrentSoldierState.DoBeforeEntering(); } } }
public void AddState(AbsSoldierState state) { if (state == null) { Debug.Log("AddState state 为空无法添加"); return; } if (statesList.Contains(state)) { Debug.Log("AddState " + state.StateID + " 已经存在,无法添加"); return; } statesList.Add(state); if (statesList.Count == 1) { CurrentSoldierState = state; } }