private void InitializeDialog(Interaction interaction) { TitleObject.GetComponent <TextMesh>().text = interaction.Title; DescriptionObject.GetComponent <TextMesh>().text = interaction.Description; int count = interaction.Answers.Count; bool isRow2X = (count == 2 || count == 4); buttons = new List <Button>(); for (int i = 0; i < count; i++) { GameObject prefab = isRow2X ? ButtonRow2X[i % 2] : ButtonRow3X[i % 3]; Vector3 targetPosition = prefab.transform.localPosition; targetPosition.y = (i / (isRow2X ? 2 : 3)) * RowHeight; Button btn = (Instantiate(prefab, ButtonParent.transform) as GameObject).GetComponent <Button>(); btn.transform.localPosition = targetPosition; btn.GetComponentInChildren <TextMesh>().text = interaction.Answers[i].Content; btn.OnButtonClicked += ((GameObject obj) => { interaction.RegisterAnswer(i); }); buttons.Add(btn); btn.gameObject.SetActive(true); } }
private void CleanDialog() { TitleObject.GetComponent <TextMesh>().text = "..."; DescriptionObject.GetComponent <TextMesh>().text = "..."; if (buttons != null) { foreach (var btn in buttons) { Destroy(btn.gameObject); } } }