void DrawEndWindow(int id) { GUILayout.TextField("结束"); if (GUILayout.Button("To")) { if (connectFrom != -1) { DialogueOptionData newAnswer = new DialogueOptionData(); newAnswer.Target = "end"; ArrayUtility.Add(ref dialogueData.Nodes[connectFrom].Answers, newAnswer); } updateDataStructures(); } GUI.DragWindow(); }
public void CreateDialogueOptionData() { nameDialogueOptionMap = new Dictionary <string, DialogueOption> (); UnityEngine.Object[] objs = Resources.LoadAll <UnityEngine.Object> ("Jsons/DialogueOptions"); foreach (TextAsset textAsset in objs) { DialogueOptionData dialogueOptionData = JsonUtility.FromJson <DialogueOptionData> (textAsset.text); // populating the map foreach (DialogueOption dialogueOption in dialogueOptionData.optionList) { nameDialogueOptionMap.Add(dialogueOption.myTitle, dialogueOption); } } }
void DrawNodeWindow(int id) { GUILayout.BeginHorizontal("box"); if (GUILayout.Button("宽度+")) { dialogueData.Nodes[id].Rect.width -= 10f; } if (GUILayout.Button("宽度-")) { dialogueData.Nodes[id].Rect.width += 10f; } if (GUILayout.Button("高度-")) { dialogueData.Nodes[id].Rect.height -= 10f; } if (GUILayout.Button("高度+")) { dialogueData.Nodes[id].Rect.height += 10f; } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal("box"); GUILayout.Label("名字"); string oldName = dialogueData.Nodes[id].Character; dialogueData.Nodes[id].Character = GUILayout.TextField(dialogueData.Nodes[id].Character); dialogueData.Nodes[id].Dir = GUILayout.TextField(dialogueData.Nodes[id].Dir); if (oldName != dialogueData.Nodes[id].Character) { } GUILayout.EndHorizontal(); dialogueData.Nodes[id].Dialogue = GUILayout.TextArea(dialogueData.Nodes[id].Dialogue); for (int i = 0; i < dialogueData.Nodes[id].Answers.Length; i++) { GUILayout.BeginHorizontal("box"); dialogueData.Nodes[id].Answers[i].Option = GUILayout.TextField(dialogueData.Nodes[id].Answers[i].Option); dialogueData.Nodes[id].Answers[i].Target = GUILayout.TextField(dialogueData.Nodes[id].Answers[i].Target); if (GUILayout.Button("删除")) { ArrayUtility.RemoveAt(ref dialogueData.Nodes[id].Answers, i); updateDataStructures(); } GUILayout.EndHorizontal(); } if (GUILayout.Button("增加")) { ArrayUtility.Add(ref dialogueData.Nodes[id].Answers, new DialogueOptionData()); updateDataStructures(); } GUILayout.BeginHorizontal("box"); { GUIStyle selectedStyle = new GUIStyle(GUI.skin.button); if (connectFrom == id) { selectedStyle.normal.textColor = Color.red; } if (GUILayout.Button("From", selectedStyle)) { connectFrom = id; } if (GUILayout.Button("To")) { if (connectFrom != -1) { DialogueOptionData newAnswer = new DialogueOptionData(); newAnswer.Target = dialogueData.Nodes[id].Character; ArrayUtility.Add(ref dialogueData.Nodes[connectFrom].Answers, newAnswer); } updateDataStructures(); } } GUILayout.EndHorizontal(); if (dialogueData.Nodes[id].Rect.x + dialogueData.Nodes[id].Rect.width > maxHorizontal) { maxHorizontal = (int)(dialogueData.Nodes[id].Rect.x + dialogueData.Nodes[id].Rect.width); } if (dialogueData.Nodes[id].Rect.y + dialogueData.Nodes[id].Rect.height > maxVertical) { maxVertical = (int)(dialogueData.Nodes[id].Rect.y + dialogueData.Nodes[id].Rect.height); } GUI.DragWindow(); }