Esempio n. 1
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);
    }
Esempio n. 2
0
 private void OnChangeUserExp()
 {
     userExpText.Value      = userEXP.Value.ToString() + " / " + curLvExpEnd.ToString();
     userEXP_Progress.Value = BK_Function.ConvertRangePercent(curLvExpStart, curLvExpEnd, userEXP.Value);
 }
Esempio n. 3
0
    void StateTransitionConditionEdit(State state, int rowcount, ref STATE_ID removeId)
    {
        //int transMax = EditorGUILayout.IntSlider("전이 개수 : ",
        //    state.arrTransitionList==null?0:state.arrTransitionList.Length,
        //    0,
        //    state.arrTransitionList==null?10:state.arrTransitionList.Length<10?10:state.arrTransitionList.Length);

        GUILayout.BeginHorizontal("box");

        if (dic_isShowBuffer.ContainsKey(state.eID))
        {
            if (GUILayout.Button(dic_isShowBuffer[state.eID] ? "-" : "+", GUILayout.Width(50)))
            {
                dic_isShowBuffer[state.eID] = !dic_isShowBuffer[state.eID];
            }
        }

        GUILayout.Label(state.eID.ToString() + "(" + ((int)state.eID).ToString() + ")", GUILayout.Width(250));

        if (state.eID != STATE_ID.AnyState)
        {
            if (GUILayout.Button("삭제", GUILayout.Width(40)))
            {
                removeId = state.eID;
            }
        }

        GUILayout.Space(30);

        GUILayout.Label("전이 개수 : ", GUILayout.Width(80));


        int transMax = EditorGUILayout.IntField(
            state.arrTransitionList == null ? 0 : state.arrTransitionList.Length, GUILayout.Width(80));

        if (transMax > 0)
        {
            BK_Function.ResizeArr <TransitionCondition>(transMax, ref state.arrTransitionList);
        }
        else
        {
            state.arrTransitionList = null;
        }

        GUILayout.Space(10);

        if (GUILayout.Button("+", GUILayout.Width(50)))
        {
            BK_Function.ResizeArr <TransitionCondition>(transMax + 1, ref state.arrTransitionList);
        }

        if (GUILayout.Button("-", GUILayout.Width(50)))
        {
            if (transMax > 0)
            {
                BK_Function.ResizeArr <TransitionCondition>(transMax - 1, ref state.arrTransitionList);
            }
        }

        state.NoHistory = GUILayout.Toggle(state.NoHistory, "NoHistory", GUILayout.Width(100));

        GUILayout.Label("", GUILayout.ExpandWidth(true));

        GUILayout.EndHorizontal();

        if (dic_isShowBuffer.ContainsKey(state.eID) && !dic_isShowBuffer[state.eID])
        {
            return;
        }

        if (state.arrTransitionList != null)
        {
            for (int i = 0; i < state.arrTransitionList.Length; i++)
            {
                if (state.arrTransitionList[i] == null)
                {
                    state.arrTransitionList[i] = new TransitionCondition(0, 0, 0);
                }

                int TransCondParam_Max = TransitionConditionEdit(state, i);

                if (TransCondParam_Max == -1)
                {
                    continue;
                }

                TransCondParamEdit(state, i, TransCondParam_Max);

                GUILayout.Box("", GUILayout.ExpandWidth(true), GUILayout.Height(1));

                GUILayout.Space(5);
            }
        }
    }