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); }
private void OnChangeUserExp() { userExpText.Value = userEXP.Value.ToString() + " / " + curLvExpEnd.ToString(); userEXP_Progress.Value = BK_Function.ConvertRangePercent(curLvExpStart, curLvExpEnd, userEXP.Value); }
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); } } }