コード例 #1
0
        private void AddNewCondition()
        {
            VariableConditionItem opt = new VariableConditionItem("StorySystem", "key", VariableCondition.IsEqual, 0);

            rect = new Rect(rect.x, rect.y, rect.width, rect.height + SizeValue);
            conditions.Add(opt);
        }
コード例 #2
0
 private void RemoveLastCondition()
 {
     if (conditions.Count > 1)
     {
         VariableConditionItem cond = conditions.Last();
         conditions.Remove(cond);
         rect = new Rect(rect.x, rect.y, rect.width, rect.height - SizeValue);
     }
 }
コード例 #3
0
        private void DrawConditions()
        {
            for (int i = 0; i < conditions.Count; i++)
            {
                VariableConditionItem cond = conditions[i];

                Rect temp = EditorGUILayout.BeginVertical(GUILayout.Height(40));
                GUILayout.Space(4);
                GUILayout.BeginHorizontal();
                GUILayout.BeginVertical();
                GUILayout.FlexibleSpace();
                GUI.skin.GetStyle("Label").alignment = TextAnchor.MiddleCenter;
                if (condGroup == VariableConditionGroupType.And)
                {
                    GUILayout.Label("&&", GUILayout.Width(20));
                }
                else if (condGroup == VariableConditionGroupType.Or)
                {
                    GUILayout.Label("||", GUILayout.Width(20));
                }
                GUI.skin.GetStyle("Label").alignment = TextAnchor.MiddleLeft;
                GUILayout.FlexibleSpace();
                GUILayout.EndVertical();
                GUILayout.BeginVertical();
                GUILayout.BeginHorizontal();
                cond.type = (VariableType)EditorGUILayout.Popup((int)cond.type, new string[] { "Integer", "Float", "String", "Bool" }, GUILayout.MaxWidth(80));
                cond.key  = EditorGUILayout.TextField(cond.key);
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                switch (cond.type)
                {
                case VariableType.Float:
                    cond.cond   = (VariableCondition)EditorGUILayout.Popup((int)cond.cond, new string[] { "==", "!=", ">", "<", ">=", "<=" }, GUILayout.MaxWidth(30));
                    cond.vFloat = EditorGUILayout.FloatField(cond.vFloat);
                    break;

                case VariableType.String:
                    cond.cond    = (VariableCondition)EditorGUILayout.Popup((int)cond.cond, new string[] { "==", "!=" }, GUILayout.MaxWidth(30));
                    cond.vString = EditorGUILayout.TextField(cond.vString);
                    break;

                case VariableType.Bool:
                    GUILayout.Label("IsTrue?", GUILayout.Width(50));
                    cond.vBool = EditorGUILayout.Toggle(cond.vBool);
                    break;
                }
                GUILayout.EndHorizontal();
                GUILayout.EndVertical();
                GUILayout.EndHorizontal();
                GUILayout.Space(12);
                GUILayout.EndVertical();
                Handles.color = new Color(1, 1, 1, 0.4f);
                Handles.DrawLine(new Vector2(temp.left, temp.top), new Vector2(temp.right, temp.top));
            }
        }