예제 #1
0
    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);
        }
    }
예제 #2
0
 private void CleanDialog()
 {
     TitleObject.GetComponent <TextMesh>().text       = "...";
     DescriptionObject.GetComponent <TextMesh>().text = "...";
     if (buttons != null)
     {
         foreach (var btn in buttons)
         {
             Destroy(btn.gameObject);
         }
     }
 }