public void PerformnTransition(EnemyTransition trans) { if (trans == EnemyTransition.NullTransition) { Debug.Log("PerformnTransition 无法执行 NullTransition "); return; } EnemyStateID id = CurrentEnemyState.GetIDByTransition(trans); if (id == EnemyStateID.NullState) { Debug.Log("PerformnTransition 无法执行 NullState "); return; } foreach (AbsEnemyState s in statesList) { if (s.StateID == id) { CurrentEnemyState.DoBeforeLeaving(); CurrentEnemyState = s; CurrentEnemyState.DoBeforeEntering(); } } }
public void AddState(AbsEnemyState 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) { CurrentEnemyState = state; } }