private void DrawNode(SceneTextNode node) { GUIStyle style, wrapStyle; SetNodeStyleAndSize(node, out style, out wrapStyle); GUILayout.BeginArea(node.GetRect(), style); // Create, Link, Destroy buttons GUILayout.BeginHorizontal(); if (GUILayout.Button("+")) { creatingNode = node; } DrawLinkButtons(node); if (GUILayout.Button("x")) { nodeToDelete = node; } GUILayout.EndHorizontal(); // Toggle Is Player Speaking GUILayout.BeginHorizontal(); node.SetVariableText(EditorGUILayout.Toggle(node.IsVariableText())); EditorGUILayout.LabelField("Is Variable Description?"); GUILayout.EndHorizontal(); if (node.IsVariableText()) { node.SetDescriptionPredicate((TextDescriptionPredicate)EditorGUILayout.EnumPopup(node.GetDescriptionPredicate())); int descCount = node.GetDescriptionCount(); for (int i = 0; i < descCount; i++) { EditorGUILayout.FloatField(node.GetDescriptionLimit(i)); EditorGUILayout.TextField(node.GetDescriptionText(i)); } } else { // Dialogue Text node.SetText(EditorGUILayout.TextArea(node.GetEditorText(), wrapStyle)); } GUILayout.EndArea(); }