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); }
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); } }
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)); } } }