Exemplo n.º 1
0
    void OnChangeUserStory(TRANS_ID transId, STATE_ID stateId, STATE_ID preStateId)
    {
        UDL.Log("UserStory current State : " + stateId);
        curUSState.Value = stateId.ToString();

        FSM_Layer.Inst.SetInt_NoCondChk(FSM_LAYER_ID.MainUI, TRANS_PARAM_ID.INT_USERSTORY_STATE, (int)stateId);
        FSM_Layer.Inst.SetInt_NoCondChk(FSM_LAYER_ID.MainUI, TRANS_PARAM_ID.INT_USERSTORY_PRE_STATE, (int)preStateId);
        FSM_Layer.Inst.SetTrigger(FSM_LAYER_ID.MainUI, TRANS_PARAM_ID.TRIGGER_CHECK_ANY_CONDITION);

        switch (stateId)
        {
        case STATE_ID.USMain_BtnSample:
            FSM_Layer.Inst.ChangeFSM(FSM_LAYER_ID.UserStory, FSM_ID.USBtn);
            break;

        case STATE_ID.USMain_ScrollSample:
            FSM_Layer.Inst.ChangeFSM(FSM_LAYER_ID.UserStory, FSM_ID.USScroll);
            break;

        case STATE_ID.USMain_TimeSample:
            FSM_Layer.Inst.ChangeFSM(FSM_LAYER_ID.UserStory, FSM_ID.USTime);
            break;

        case STATE_ID.USMain_ExitConfirm:
            ExitConfirm();
            break;

        default:
            break;
        }

        UserDataManager.Inst.AddExp();
    }
Exemplo n.º 2
0
        void OwnerStart(TRANS_ID transID, STATE_ID stateid, STATE_ID preStateID)
        {
            fStartTime     = UnityEngine.Time.realtimeSinceStartup;
            fPauseTIme     = 0;
            fPauseInterval = 0;

            UDL.LogWarning("TransCondWithTime Owner Start // current :" + stateid.ToString() + " / " + fStartTime.ToString() + " / pre : " + preStateID + " / transID : " + transID + " / hashcode : " + this.GetHashCode(), FSM.logOption, FSM.warningLoglv);
        }
Exemplo n.º 3
0
        void TransitionStart(TRANS_ID transParamID, STATE_ID nextStateID)
        {
            triggerID = TRANS_PARAM_ID.TRIGGER_NONE;

            if (!IsActive)
            {
                UDL.Log(fsmID + " Refuse TransitionStart", logOption, FSM.logLv);
                return;
            }

            if (nextStateID == STATE_ID.HistoryBack)
            {
                HistoryBack();
                return;
            }

            if (!dicStateList.TryGetValue(nextStateID, out tStateBuffer))
            {
                UDL.LogError(nextStateID.ToString() + " 등록된 씬이 아님!", logOption, FSM.errorLoglv);
                return;
            }

            calldepth++;

            if (calldepth > 1)
            {
                UDL.LogWarning(fsmID + " FSM Call Depth is : " + calldepth
                               + " // 재귀호출구조가 되면서 EvnetStateChange callback이 현재 상태만을 매개변수로 역순으로 반복호출됩니다. ", logOption, FSM.warningLoglv);
            }

            UDL.Log(fsmID + " Transition Start// " + curState.eID + " -> "
                    + dicStateList[nextStateID].eID + " // " + transParamID, logOption, FSM.logLv);

            STATE_ID preStateID = curState.eID;

            curState.End(transParamID, nextStateID);

            if (!curState.NoHistory)
            {
                history.Push(curState.eID);
            }

            curState = dicStateList[nextStateID];

            curState.Start(transParamID, preStateID);

            if (EventStateChange != null)
            {
                EventStateChange(transParamID, curState.eID, preStateID);
            }

            calldepth--;
        }
Exemplo n.º 4
0
        public State GetState(STATE_ID stateID)
        {
            UDL.Log("GetState : " + stateID.ToString() + " / dicStateList.Count : " + dicStateList.Count.ToString(), logOption, FSM.logLv);

            if (dicStateList.TryGetValue(stateID, out tStateBuffer))
            {
                return(tStateBuffer);
            }

            UDL.LogError("등록되지 않은 상태를 호출했음 " + stateID, logOption, FSM.errorLoglv);
            return(null);
        }