示例#1
0
        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();
        }
示例#2
0
    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);
            }
        }
    }
示例#3
0
        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();
        }