Exemple #1
0
        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();
            }
        }
Exemple #4
0
        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);
            }
        }