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