コード例 #1
0
ファイル: FSM_Test.cs プロジェクト: moongtaeng/UnityLibrary
            public override IEnumerator OnStart_State(TestStateBase pPrevState, EStateStartType eStateStartType)
            {
                p_bIsLoop = true;

                yield return(base.OnStart_State(pPrevState, eStateStartType));

                p_pFSMOwner.DoEnqueueState(EState.State_Loop_1, EStateInsertType.Waiting);
            }
コード例 #2
0
ファイル: FSM_Test.cs プロジェクト: moongtaeng/UnityLibrary
            virtual public IEnumerator OnStart_State(TestStateBase pPrevState, EStateStartType eStateStartType)
            {
                int iWaitFrame = 0;

                while (iWaitFrame++ < 3)
                {
                    Debug.Log(IDictionaryItem_GetKey() + " eStateStartType : " + eStateStartType);
                    yield return(null);
                }
            }
コード例 #3
0
        public IEnumerator EventStart(CStateContainer pPrevState, EStateStartType eStateStartType, System.Action <CLASS_STATE> OnFinishState)
        {
            p_bIsWait = true;

            if (pPrevState != null)
            {
                yield return(p_pStateInstance.OnStart_State(pPrevState.p_pStateInstance, eStateStartType));
            }
            else
            {
                yield return(p_pStateInstance.OnStart_State(null, eStateStartType));
            }

            OnFinishState(p_pStateInstance);
        }
コード例 #4
0
    public IEnumerator OnStart_State(CLASS_STATE pPrevState, EStateStartType eStateStartType)
    {
        p_pExecuter_OnTransitionState.DoNotify_OnEnable();
        p_pExecuter_OnEnable.DoNotify_OnEnable();

        if (_pCoroutine_ExecuteContainer != null)
        {
            _pScriptOwner.StopCoroutine(_pCoroutine_ExecuteContainer);
        }
        _pCoroutine_ExecuteContainer = _pScriptOwner.StartCoroutine(OnStart_State());

        //if(pPrevState != null)
        //    Debug.Log(IDictionaryItem_GetKey().ToString() + " " + nameof(OnStart_State) + " pPrevState : " + pPrevState.IDictionaryItem_GetKey().ToString() + " eStateStartType : " + eStateStartType);
        //else
        //    Debug.Log(IDictionaryItem_GetKey().ToString() + " " + nameof(OnStart_State) + " pPrevState : Null / eStateStartType : " + eStateStartType);

        yield return(OnStart_State_ExecuteContainer(pPrevState, eStateStartType));
    }
コード例 #5
0
 public override IEnumerator OnStart_State_ExecuteContainer(TestStateBase pPrevState, EStateStartType eStateStartType)
 {
     yield break;
 }
コード例 #6
0
    protected void SetStart_State(CStateContainer pStartState, CStateContainer pPrevState, EStateStartType eStateStartType)
    {
        if (_pOwner.gameObject.activeSelf == false)
        {
            return;
        }

        if (_pCoroutine != null)
        {
            _pOwner.StopCoroutine(_pCoroutine);
        }

        _pCoroutine = _pOwner.StartCoroutine(pStartState.EventStart(pPrevState, eStateStartType, Finish_State));
    }
コード例 #7
0
 abstract public IEnumerator OnStart_State_ExecuteContainer(CLASS_STATE pPrevState, EStateStartType eStateStartType);