private static void OpenVarMenu(ConditionVariables.ConditionVariable treeVar) { GenericMenu menu = new GenericMenu(); menu.AddItem(new GUIContent(string.Format("Delete {0}", treeVar.name)), false, () => DeleteVar(treeVar)); menu.ShowAsContext(); }
private static void ShowFloatVarCondition(ConditionMusicTreeNode cond, ConditionVariables.ConditionVariable currentVar) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Condition Type"); cond.condition.floatCondition = (ConditionVariables.Condition.FloatCondition)EditorGUILayout.EnumPopup((Enum)cond.condition.floatCondition); EditorGUILayout.EndHorizontal(); cond.condition.floatVal = EditorGUILayout.FloatField("Value", cond.condition.floatVal); }
private static void ShowVarCondition(ConditionMusicTreeNode cond, ConditionVariables.ConditionVariable currentVar) { switch (currentVar.value.type) { case ConditionVariables.ConditionVariableValue.Type.Boolean: ShowBoolVarCondition(cond); break; case ConditionVariables.ConditionVariableValue.Type.Float: ShowFloatVarCondition(cond, currentVar); break; case ConditionVariables.ConditionVariableValue.Type.Integer: ShowIntVarCondition(cond); break; default: throw new NotImplementedException(); } }
private static void DrawVarEditor(ConditionVariables.ConditionVariable treeVar, out bool deletedAny) { EditorGUILayout.BeginHorizontal(MusicTreeEditorWindow.configs.Skin.box); GUILayout.Label(treeVar.name); GUILayout.FlexibleSpace(); deletedAny = false; var valueDescripton = treeVar.value; switch (valueDescripton.type) { case ConditionVariables.ConditionVariableValue.Type.Integer: valueDescripton.intValue = EditorGUILayout.IntField(valueDescripton.intValue, GUILayout.Width(50)); break; case ConditionVariables.ConditionVariableValue.Type.Boolean: valueDescripton.boolValue = EditorGUILayout.Toggle(valueDescripton.boolValue, GUILayout.Width(50)); break; case ConditionVariables.ConditionVariableValue.Type.Float: valueDescripton.floatValue = EditorGUILayout.FloatField(valueDescripton.floatValue, GUILayout.Width(50)); break; default: break; } if (GUILayout.Button("x", GUILayout.Width(20))) { DeleteVar(treeVar); deletedAny = true; } EditorGUILayout.EndHorizontal(); var varArea = GUILayoutUtility.GetLastRect(); if (Event.current.button == 1 && varArea.Contains(Event.current.mousePosition)) { OpenVarMenu(treeVar); } }