protected virtual void Update() { if (canUpdate) { currentState.OnUpdate(); } }
public virtual void OnUpdate() { if (debug) { DebugWithFSM(); } //=================================== // 更新Transition // 更新anyState的Transition if (anyState != null) { foreach (var transition in anyState.transitions) { if (transition.IsValid()) { activeState.OnExit(); activeState = transition.GetNextState(); activeState.OnEnter(); return; } } } // 遍历当前活动状态的所有转换条件,进行状态转换 foreach (var transition in activeState.transitions) { if (transition.IsValid()) { activeState.OnExit(); activeState = transition.GetNextState(); activeState.OnEnter(); return; } } //=================================== // 更新State // 更新anyState if (anyState != null) { anyState.OnUpdate(); } // 没有状态可以转换的时候,执行当前状态要进行的事件 activeState.OnUpdate(); }