protected void DialogueOptionSelected(DialogueRuntime runtime, CurrentDialogue dialogue, OptionSelection selection) { for (int i = 0; i < selectionsContainer.childCount; i++) { if (selectionsContainer.GetChild(i).name == "row_selection") { Destroy(selectionsContainer.GetChild(i).gameObject); } } }
protected void DialogueUIUpdate(DialogueRuntime runtime, CurrentDialogue dialogue) { text.text = dialogue.Text; selectionsContainer.gameObject.SetActive(false); continueButton.gameObject.SetActive(!dialogue.HasSelections); actorContainer.gameObject.SetActive(dialogue.Actor != null ? true : false); if (continueButton.gameObject.activeSelf) { continueButton.transform.Find("text").GetComponent <Text>().text = dialogue.IsEnding ? "Finish" : "Next"; } if (actorContainer.gameObject.activeSelf) { actorContainer.Find("text").GetComponent <Text>().text = dialogue.Actor; } if (dialogue.HasSelections) { selectionsContainer.gameObject.SetActive(true); dialogue.Selections.ForEach(selection => { var option = GameObject.Instantiate(sampleOption); option.name = "row_selection"; option.gameObject.SetActive(true); option.Find("text").GetComponent <Text>().text = selection.Text; option.GetComponent <Button>().onClick.AddListener(() => runtime.Continue(selection)); option.SetParent(selectionsContainer); }); } }
private void Update() { if (runtime == null) { // begin the dialogue if (Input.GetKeyDown(KeyCode.C)) { if (dialogueTreeText != null) { runtime = runtimeFactory.Create(dialogueTreeText); } else if (dialogueTreeName != "") { runtime = runtimeFactory.Create(dialogueTreeName); } else { container.Find("text").GetComponent <Text>().text = "Please specify the json file, or the name of the dialogue tree."; } } } }
protected void DialogueTreeFinished(DialogueRuntime runtime) { container.gameObject.SetActive(false); selectionsContainer.gameObject.SetActive(false); this.runtime = null; }
protected void DialogueTreeBegin(DialogueRuntime runtime) { container.gameObject.SetActive(true); }