예제 #1
0
    public void BuildDialog()
    {
        List <DialogChooseNode> chooseNodes = new List <DialogChooseNode>();

        foreach (DialogPhrase phrase in dialog.phrases)
        {
            DialogPhraseNode phraseNode = CreatePhrase(phrase.nodePosition.position, phrase);
            foreach (DialogChoose choose in phrase.chooses)
            {
                DialogChooseNode chooseNode = phraseNode.CreateChooseNode(choose);
                chooseNodes.Add(chooseNode);
            }
        }
        foreach (DialogChooseNode chooseNode in chooseNodes)
        {
            foreach (DialogLink link in chooseNode.choose.links)
            {
                DialogLinkNode linkNode = chooseNode.CreateLinkNode(link);
                foreach (DialogPhraseNode phraseNode in nodes)
                {
                    if (phraseNode.phrase == link.output)
                    {
                        linkNode.outputPhrase = phraseNode;
                        phraseNode.inputLinks.Add(linkNode);
                        break;
                    }
                }
            }
        }
    }
예제 #2
0
    public DialogChooseNode CreateChooseNode(DialogChoose choose)
    {
        DialogChooseNode chooseNode = new DialogChooseNode();

        if (choose != null)
        {
            chooseNode.choose     = choose;
            chooseNode.windowRect = choose.nodePosition;
        }
        else
        {
            GameObject goChoose = new GameObject("Choose");
            goChoose.transform.parent = phrase.transform;
            DialogChoose newChoose = goChoose.AddComponent <DialogChoose>();
            phrase.chooses.Add(newChoose);
            chooseNode.choose = newChoose;
        }
        chooseNode.id = DialogEditor.editor.id;
        DialogEditor.editor.id++;
        chooseNode.parentNode = this;
        chooseNodes.Add(chooseNode);
        Selection.activeGameObject = chooseNode.choose.gameObject;
        return(chooseNode);
    }