Esempio 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();
    }
Esempio n. 2
0
    private int TransitionConditionEdit(State state, int countInList)
    {
        GUILayout.BeginHorizontal();

        if (GUILayout.Button("X", GUILayout.Width(30)) && state.arrTransitionList.Length > 0)
        {
            BK_Function.RemoveAtArr <TransitionCondition>(countInList, ref state.arrTransitionList);
            return(-1);
        }

        TRANS_ID transid = state.arrTransitionList[countInList].eTransID;

        if (transid != 0)
        {
            GUI.color = Color.red;
        }

        GUILayout.Label("TransID : ", GUILayout.Width(50));
        EditorGUI.BeginChangeCheck();
        transid = (TRANS_ID)EditorGUILayout.IntField((int)transid, GUILayout.Width(30));
        if (EditorGUI.EndChangeCheck())
        {
            state.arrTransitionList[countInList].SetTransID(transid);
        }

        GUI.color = Color.white;

        GUILayout.Label("다음 상태 : ", GUILayout.Width(60));

        STATE_ID nextid = (STATE_ID)EditorGUILayout.IntPopup((int)state.arrTransitionList[countInList].nextStateID,
                                                             curStatePopupList.arr_sName, curStatePopupList.arr_nID, GUILayout.Width(200));

        state.arrTransitionList[countInList].SetNextStateID(nextid);

        float transtime = EditorGUILayout.FloatField("전이 시간 설정 : ",
                                                     (state.arrTransitionList[countInList].transitionWithTime == null) ? 0 : state.arrTransitionList[countInList].transitionWithTime.m_fConditionTimeValue);

        if (transtime != 0)
        {
            state.arrTransitionList[countInList].SetTransTime(transtime, state);
        }
        else
        {
            state.arrTransitionList[countInList].RemoveTransTime();
        }


        if (state.arrTransitionList[countInList].arrTransParam == null)
        {
            state.arrTransitionList[countInList].arrTransParam = new ArrayList();
        }

        int TransCondParam_Max = EditorGUILayout.IntSlider(
            "전이 조건 개수 : ", state.arrTransitionList[countInList].arrTransParam.Count, 0, 5);

        GUILayout.EndHorizontal();

        return(TransCondParam_Max);
    }
        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);
        }
Esempio n. 4
0
    void OnChangeUserStory(TRANS_ID transID, STATE_ID stateid, STATE_ID preStateID)
    {
        Transform t;

        if (UICameraPos.dicPos.TryGetValue(stateid, out t))
        {
            StartCameraMove(t);
        }
    }
Esempio n. 5
0
    void OnChangePopupUI(TRANS_ID transId, STATE_ID stateId, STATE_ID preStateId)
    {
        UDL.Log("PopupUI current State : " + stateId);

        switch (stateId)
        {
        default:
            break;
        }
    }
        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--;
        }
 public void End(TRANS_ID transID, STATE_ID nextStateID)
 {
     if (EventEnd_Before != null)
     {
         EventEnd_Before(transID, nextStateID, eID);
     }
     if (EventEnd != null)
     {
         EventEnd(transID, nextStateID, eID);
     }
     if (EventEnd_After != null)
     {
         EventEnd_After(transID, nextStateID, eID);
     }
 }
 public void Start(TRANS_ID transID, STATE_ID preStateID)
 {
     if (EventStart_Before != null)
     {
         EventStart_Before(transID, eID, preStateID);
     }
     if (EventStart != null)
     {
         EventStart(transID, eID, preStateID);
     }
     if (EventStart_After1 != null)
     {
         EventStart_After1(transID, eID, preStateID);
     }
     if (EventStart_After2 != null)
     {
         EventStart_After2(transID, eID, preStateID);
     }
 }
        /// <summary>
        /// 특정 상태로 넘어가기 위한 조건을 1개 이상 설정할 수 있다.
        /// 가지고 있는 모든 조건을 만족했을 때만 다음 상태로 전이한다.
        /// </summary>
        /// <param name="uiID">특정코드번호를 정의하고 입력해두면 상태가 전이 됐을 때 어떤 전이조건으로 전이됐는지 체크할 때 사용할 수 있다. 사용할 일이 없다면 0으로 입력</param>
        /// <param name="transTime">초단위의 시간을 입력. 상태가 시작되고 입력된 시간이 지나면 조건이 만족된다. 시간조건을 사용하지 않는다면 0으로 입력</param>
        public TransitionCondition(STATE_ID _nextStateID, TRANS_ID uiID, float transTime, params TransCondWithParam[] _arrTransParam)
        {
            eTransID    = uiID;
            nextStateID = _nextStateID;

            if (transTime != 0)
            {
                transitionWithTime = new TransCondWithTime(transTime);
            }

            if (_arrTransParam != null)
            {
                if (_arrTransParam.Length > 0)
                {
                    for (int i = 0; i < _arrTransParam.Length; i++)
                    {
                        arrTransParam.Add(_arrTransParam[i]);
                    }
                }
            }
        }
Esempio n. 10
0
 void OnStart_US_EndState(TRANS_ID transId, STATE_ID stateId, STATE_ID preStateId)
 {
     FSM_Layer.Inst.ChangeFSM(FSM_LAYER_ID.UserStory, FSM_ID.USMain);
     //[curState]->USMain_OutroToMainMenu
     FSM_Layer.Inst.SetTrigger(FSM_LAYER_ID.UserStory, TRANS_PARAM_ID.TRIGGER_ESCAPE);
 }
Esempio n. 11
0
 private void OnStart_USLoading(TRANS_ID transID, STATE_ID stateID, STATE_ID preStateID)
 {
     StartCoroutine(LoadUI());
 }
Esempio n. 12
0
    private void OnStart(TRANS_ID transID, STATE_ID stateID, STATE_ID preStateID)
    {
        ReactionProcess(dicIndex[stateID].onStart, dicIndex[stateID].onStartExcuteId);

        UDL.Log(gameObject.name + " OnStart : " + stateID + " // after active : " + gameObject.activeSelf, nLogOption, isDebug, nLogLevel);
    }
Esempio n. 13
0
    private void OnStartBefore(TRANS_ID transID, STATE_ID stateID, STATE_ID preStateID)
    {
        ReactionProcess(dicIndex[stateID].onStartBefore, dicIndex[stateID].onStartBeforeExcuteId);

        UDL.Log(gameObject.name + " OnStartBefore : " + stateID, nLogOption, isDebug, nLogLevel);
    }
Esempio n. 14
0
    private void OnEndAfter(TRANS_ID transID, STATE_ID stateID, STATE_ID preStateID)
    {
        ReactionProcess(dicIndex[preStateID].onEndAfter, dicIndex[preStateID].onEndAfterExcuteId);

        UDL.Log(gameObject.name + " OnEndAfter : " + preStateID, nLogOption, isDebug, nLogLevel);
    }
Esempio n. 15
0
 void OwnerEnd(TRANS_ID transID, STATE_ID stateid, STATE_ID preStateID)
 {
 }
Esempio n. 16
0
        public void SetTransID(TRANS_ID id)
        {
            eTransID = id;

            UDL.LogWarning("Set trans ID : " + eTransID, FSM.logOption, FSM.warningLoglv);
        }