private void Finish_State(EStateFinishType eStateFinishType) { CStateContainer pPrevState = p_pStateContainer_Current; if (_stack_Interrupt.Count > 0) { ENUM_STATE eStateInterrupted = _stack_Interrupt.Pop(); CStateContainer pNextState = _mapState[eStateInterrupted]; SetLeave_State(pNextState, eStateFinishType); SetInterruptResume_State(pNextState, pPrevState); SetCurrentState(eStateInterrupted); } else if (_queue_Waiting.Count > 0) { ENUM_STATE pStateWaiting = _queue_Waiting.Dequeue(); CStateContainer pNextState = _mapState[pStateWaiting]; SetLeave_State(pNextState, eStateFinishType); SetStart_State(_mapState[pStateWaiting], pPrevState, EStateStartType.Waited); SetCurrentState(pStateWaiting); } else { SetLeave_State(null, eStateFinishType); SetCurrentState(null); } }
virtual public void OnFinish_State(CLASS_STATE pNextState, EStateFinishType eStateFinishType) { if (_pCoroutine_ExecuteContainer != null) { _pScriptOwner.StopCoroutine(_pCoroutine_ExecuteContainer); } }
virtual public void OnFinish_State(TestStateBase pNextState, EStateFinishType eStateFinishType) { if (pNextState != null) { Debug.Log(IDictionaryItem_GetKey() + nameof(OnFinish_State) + " eStateFinishType : " + eStateFinishType + " pNextState : " + pNextState.ToString()); } else { Debug.Log(IDictionaryItem_GetKey() + nameof(OnFinish_State) + " eStateFinishType : " + eStateFinishType + " pNextState : null"); } }
protected void SetLeave_State(CStateContainer pNextState, EStateFinishType eStateFinishType) { if (p_pStateContainer_Current != null) { p_pStateContainer_Current.EventFinish(pNextState, eStateFinishType); if (_pCoroutine != null) { _pOwner.StopCoroutine(_pCoroutine); } _stack_PrevState.Push(p_eStateCurrent); } }
public void EventFinish(CStateContainer pNextState, EStateFinishType eStateFinishType) { p_bIsWait = false; if (pNextState != null) { p_pStateInstance.OnFinish_State(pNextState.p_pStateInstance, eStateFinishType); } else { p_pStateInstance.OnFinish_State(null, eStateFinishType); } }
public override void OnFinish_State(TestStateBase pNextState, EStateFinishType eStateFinishType) { base.OnFinish_State(pNextState, eStateFinishType); p_bIsLoop = false; }