private void Actions2() { if (curr.targetMech == RPGSkill.TargetingMechanic.SingleTarget) GUI.enabled = false; EditorGUILayout.BeginVertical(GUILayout.Width(330)); { EditorGUILayout.BeginHorizontal(); { GUILayout.Label("for each Target", UniRPGEdGui.Head3Style); GUILayout.Space(20); if (UniRPGEdGui.IconButton("Action", UniRPGEdGui.Icon_Plus, GUILayout.Width(100))) { editingLeft = false; if (openWiz != null) openWiz.Close(); openWiz = ActionWiz.Show(OnActionSelected, curr.gameObject, null); } GUILayout.FlexibleSpace(); } EditorGUILayout.EndHorizontal(); GUILayout.Space(20); scroll[3] = UniRPGEdGui.BeginScrollView(scroll[3], UniRPGEdGui.ScrollViewNoTLMarginStyle, GUILayout.Height(175)); ActionsList(curr.rightActions, false, 330); UniRPGEdGui.EndScrollView(); } EditorGUILayout.EndVertical(); GUI.enabled = true; }
private void ActionsList(List<Action> actions, bool left, float w) { if (actions.Count > 0) { GUIStyle back = UniRPGEdGui.ListItemBackDarkStyle; Action delAct = null; int move = 0; int count = 0; foreach (Action act in actions) { count++; EditorGUILayout.BeginHorizontal(); { if (act == null) { if (GUILayout.Button("FIX", UniRPGEdGui.ButtonLeftStyle, GUILayout.Width(25))) { actions = UniRPGUtil.CleanupList<Action>(actions); GUIUtility.ExitGUI(); break; } GUILayout.Label(count + ": Error => NULL value Action found.", back, GUILayout.ExpandWidth(true)); } else { if (selectedAct == act) { if (GUILayout.Button(count + ": " + UniRPGEditorGlobal.GetActionShortNfoString(act), UniRPGEdGui.ListItemSelectedStyle, GUILayout.Width(w - 105))) { editingLeft = left; if (openWiz != null) openWiz.Close(); openWiz = ActionWiz.Show(OnActionSelected, curr.gameObject, act); } if (UniRPGEdGui.IconButton(null, UniRPGEdGui.Icon_Minus, UniRPGEdGui.ButtonMidStyle, GUILayout.Width(25))) delAct = act; if (UniRPGEdGui.IconButton(null, UniRPGEdGui.Icon_Arrow2_Up, UniRPGEdGui.ButtonMidStyle, GUILayout.Width(25))) move = -1; if (UniRPGEdGui.IconButton(null, UniRPGEdGui.Icon_Arrow2_Down, UniRPGEdGui.ButtonRightStyle, GUILayout.Width(25))) move = +1; } else { if (GUILayout.Button(count + ": " + UniRPGEditorGlobal.GetActionShortNfoString(act), back, GUILayout.Width(w - 35))) { editingLeft = left; selectedAct = act; if (openWiz != null) openWiz.Close(); openWiz = ActionWiz.Show(OnActionSelected, curr.gameObject, act); } GUILayout.Space(5); } } GUILayout.Space(10); } EditorGUILayout.EndHorizontal(); back = (back == UniRPGEdGui.ListItemBackDarkStyle ? UniRPGEdGui.ListItemBackLightStyle : UniRPGEdGui.ListItemBackDarkStyle); } if (move != 0 && selectedAct != null) { if (openWiz != null) { openWiz.Close(); openWiz = null; } int idx = actions.IndexOf(selectedAct); actions.Remove(selectedAct); idx = idx + move; if (idx > actions.Count) idx = actions.Count; if (idx < 0) idx = 0; actions.Insert(idx, selectedAct); EditorUtility.SetDirty(curr); } if (delAct != null) { if (openWiz != null) { openWiz.Close(); openWiz = null; } if (selectedAct == delAct) selectedAct = null; actions.Remove(delAct); GameObject.DestroyImmediate(delAct, true); // remove the component from prefab delAct = null; EditorUtility.SetDirty(curr); } } }
private void Actions1() { EditorGUILayout.BeginVertical(GUILayout.Width(330)); { EditorGUILayout.BeginHorizontal(); { GUILayout.Label("OnUse Actions", UniRPGEdGui.Head3Style); GUILayout.Space(20); if (UniRPGEdGui.IconButton("Action", UniRPGEdGui.Icon_Plus, GUILayout.Width(100))) { editingLeft = true; if (openWiz != null) openWiz.Close(); openWiz = ActionWiz.Show(OnActionSelected, curr.gameObject, null); } GUILayout.FlexibleSpace(); } EditorGUILayout.EndHorizontal(); GUILayout.Space(20); scroll[2] = UniRPGEdGui.BeginScrollView(scroll[2], UniRPGEdGui.ScrollViewNoTLMarginStyle, GUILayout.Height(175)); ActionsList(curr.onUseActions, true, 330); UniRPGEdGui.EndScrollView(); } EditorGUILayout.EndVertical(); }