コード例 #1
0
        private void AddNewOperation()
        {
            VariableControlItem opt = new VariableControlItem("StorySystem", "key", VariableOperation.Set, 0);

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

                Rect temp = EditorGUILayout.BeginVertical(GUILayout.Height(40));
                GUILayout.Space(8);
                GUILayout.BeginHorizontal();
                GUILayout.BeginVertical();
                GUILayout.FlexibleSpace();
                GUI.skin.GetStyle("Label").alignment = TextAnchor.MiddleCenter;
                GUILayout.Label(i.ToString(), GUILayout.Width(20));
                GUI.skin.GetStyle("Label").alignment = TextAnchor.MiddleLeft;
                GUILayout.FlexibleSpace();
                GUILayout.EndVertical();
                GUILayout.BeginVertical();
                GUILayout.BeginHorizontal();
                opt.type = (VariableType)EditorGUILayout.Popup((int)opt.type, Enum.GetNames(typeof(VariableType)), GUILayout.MaxWidth(80));
                opt.key  = EditorGUILayout.TextField(opt.key);
                GUILayout.EndHorizontal();
                GUILayout.BeginHorizontal();
                switch (opt.type)
                {
                case VariableType.Float:
                    opt.opt    = (VariableOperation)EditorGUILayout.Popup((int)opt.opt, new string[] { "+", "-", "*", "÷", "=" }, GUILayout.MaxWidth(30));
                    opt.vFloat = EditorGUILayout.FloatField(opt.vFloat);
                    break;

                case VariableType.String:
                    GUILayout.Label("Set to", GUILayout.Width(40));
                    opt.vString = EditorGUILayout.TextField(opt.vString);
                    break;

                case VariableType.Bool:
                    GUILayout.Label("IsTrue", GUILayout.Width(40));
                    opt.vBool = EditorGUILayout.Toggle(opt.vBool);
                    break;
                }
                GUILayout.EndHorizontal();
                GUILayout.EndVertical();
                GUILayout.EndHorizontal();
                GUILayout.Space(8);
                GUILayout.EndVertical();
                Handles.color = new Color(1, 1, 1, 0.4f);
                if (i > 0)
                {
                    Handles.DrawLine(new Vector2(temp.left, temp.top), new Vector2(temp.right, temp.top));
                }
            }
        }