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; } } } } }
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); }