public static void CreateWindow(DialogEditorWindow editor)
    {
        DialogEditorHelpWindow dew = GetWindow(typeof(DialogEditorHelpWindow), false, "Help") as DialogEditorHelpWindow;

        dew.Show();
        dew.position  = new Rect(editor.position.x + editor.position.width, editor.position.y + 250, 400, 300);
        dew.textStyle = new GUIStyle
        {
            richText = true,
            wordWrap = true,
            fontSize = 10,
            margin   = new RectOffset(12, 12, 12, 12)
        };
    }
예제 #2
0
    void DrawNodeField()
    {
        nodeField = new Rect(nodeFieldSideBorder, nodeFieldUpperBorder, position.width - nodeFieldSideBorder * 2, position.height - nodeFieldUpperBorder - 10);
        GUI.DrawTexture(nodeField, nodeFieldBGColor);

        BeginWindows();

        /*if (dialogContainer.dragScreen == default(Rect)) dialogContainer.dragScreen = new Rect(0, 0, float.MaxValue, float.MaxValue);
         * dialogContainer.dragScreen = GUI.Window(int.MaxValue, dialogContainer.dragScreen, DragScreen, "", dragScreenStyle);*/
        if (dialogContainer != null)
        {
            for (int i = 0; i < dialogContainer.DialogNodes.Length; i++)
            {
                dialogContainer.DialogNodes[i].window = GUI.Window(i, dialogContainer.DialogNodes[i].window, DrawDialogNode, "Id: " + dialogContainer.DialogNodes[i].dialog.Id.ToString(), nodeStyle);
                var comeFrom = dialogContainer.ResponseNodes.Where(a => a.response.Id == dialogContainer.DialogNodes[i].dialog.ComesFrom).ToArray();
                for (int j = 0; j < comeFrom.Length; j++)
                {
                    Handles.DrawBezier(
                        comeFrom[j].window.center + new Vector2(comeFrom[j].window.width / 2, 0),
                        dialogContainer.DialogNodes[i].window.center - new Vector2(dialogContainer.DialogNodes[i].window.width / 2, 0),
                        comeFrom[j].window.center + new Vector2(comeFrom[j].window.width / 2, 0) - Vector2.left * 50,
                        dialogContainer.DialogNodes[i].window.center - new Vector2(dialogContainer.DialogNodes[i].window.width / 2, 0) + Vector2.left * 50,
                        Color.black,
                        null,
                        3f
                        );
                }
            }
            for (int i = 0; i < dialogContainer.ResponseNodes.Length; i++)
            {
                dialogContainer.ResponseNodes[i].window = GUI.Window(i + maxTexts, dialogContainer.ResponseNodes[i].window, DrawResponseNode, "Id: " + dialogContainer.ResponseNodes[i].response.Id.ToString(), nodeStyle);
                var comeFrom = dialogContainer.DialogNodes.Where(a => a.dialog.Id == dialogContainer.ResponseNodes[i].response.ComesFrom).ToArray();
                for (int j = 0; j < comeFrom.Length; j++)
                {
                    Handles.DrawBezier(
                        comeFrom[j].window.center + new Vector2(comeFrom[j].window.width / 2, 0),
                        dialogContainer.ResponseNodes[i].window.center - new Vector2(dialogContainer.ResponseNodes[i].window.width / 2, 0),
                        comeFrom[j].window.center + new Vector2(comeFrom[j].window.width / 2, 0) - Vector2.left * 50,
                        dialogContainer.ResponseNodes[i].window.center - new Vector2(dialogContainer.ResponseNodes[i].window.width / 2, 0) + Vector2.left * 50,
                        Color.black,
                        null,
                        3f
                        );
                }
            }
        }
        DrawBorders();
        EndWindows();
        if (GUI.Button(new Rect(20, 10, 60, 20), "Setup"))
        {
            DialogEditorSetupWindow.CreateWindow(this);
        }
        if (GUI.Button(new Rect(90, 10, 60, 20), "Save"))
        {
            Save();
            Debug.Log("Progress saved! To be honest, unless you have added new nodes, this button doesn't do much after the first time you press it.");
        }
        if (GUI.Button(new Rect(position.width - 40, 10, 20, 20), "?"))
        {
            DialogEditorHelpWindow.CreateWindow(this);
        }
    }