Пример #1
0
    public void ShowWindow(Npc npc, DialogBoard board)
    {
        this.board = board;

        textName.text = npc.NpcName;

        SetNode(board.GetNode(board.rootNode) as NpcNode);

        panel.SetActive(true);
    }
    public static void CreateWindow(DialogBoard target, string path)
    {
        DialogSystemWindow window = (DialogSystemWindow)CreateInstance(typeof(DialogSystemWindow));

        window.target = target;
        window.path   = path;
        window.Show();

        // replace by an Init function ?
        window.nodeStyle = GUI.skin.button;
    }
Пример #3
0
    private void Start()
    {
        dialog = DialogManager.Singleton.GetDialog(dialogName);

        if (dialog != null)
        {
            state        = new NpcState();
            state.npc    = this;
            dialog.state = state;
        }
    }
 private void InitBoards(BoardGroupXmlInfo boardGroup)
 {
     foreach (var boardInfo in boardGroup.BoardInfos)
     {
         var dialogBoard = new DialogBoard(boardInfo.DeviceNumber, boardInfo.BoardName, boardGroup.BoardType);
         foreach (var boardItem in boardInfo.BoardItemInfos)
         {
             dialogBoard.BoardItems.Add(new DialogBoardItem(boardItem.Number, boardItem.ToolTip));
         }
         _boards.Add(dialogBoard);
     }
 }
    static bool OpenWindow(int instanceID, int line)
    {
        string path = AssetDatabase.GetAssetPath(EditorUtility.InstanceIDToObject(instanceID));

        if (path.EndsWith(".dialog"))
        {
            DialogBoard board = null;
            Serializer.ReadFromFile(path, out board);
            board.name = EditorUtility.InstanceIDToObject(instanceID).name;
            CreateWindow(board, path);
        }
        else
        {
            return(false);
        }
        return(true);
    }
    public static void CreateDialogAsset(Type stateType)
    {
        DialogBoard dialog = new DialogBoard();

        dialog.state = (State)Activator.CreateInstance(stateType);

        string folderPath = AssetDatabase.GetAssetPath(Selection.activeInstanceID);

        string path     = "";
        string fileName = "";
        int    index    = 0;

        do // get an available filename
        {
            fileName = "New Dialog" + (index > 0 ? " (" + index + ")" : "");
            path     = Path.Combine(folderPath, fileName + ".dialog");
            index++;
        }while (File.Exists(path));

        // Create the file and write a new quest in it
        Serializer.WriteToFile(path, dialog);
        AssetDatabase.Refresh();
    }