예제 #1
0
    public void DisplayChoices(List <Choice> p_choices)
    {
        Clear();

        float height = 0;

        foreach (Choice choice in p_choices)
        {
            GameObject spawned = Instantiate(m_choiceTemplate, transform);
            spawned.SetActive(true);

            RectTransform   rect   = spawned.GetComponent <RectTransform>();
            TextMeshProUGUI text   = spawned.transform.Find("Text").GetComponent <TextMeshProUGUI>();
            Button          button = spawned.GetComponent <Button>();

            button.onClick.AddListener(delegate { if (Time.timeScale == 0f)
                                                  {
                                                      return;
                                                  }
                                                  choice.React(m_controller); });
            text.text = m_controller.GetFormattedLine(choice.m_line);

            rect.anchoredPosition = new Vector2(rect.anchoredPosition.x, rect.anchoredPosition.y - height);
            height += rect.sizeDelta.y;

            m_spawnedChoices.Add(spawned);
        }

        m_openedTime = Time.unscaledTime;
        m_pressed    = false;
        EventSystem.current.SetSelectedGameObject(m_spawnedChoices[0]);

        height += m_headerTransform.sizeDelta.y + m_borderSize * 2 + 12;
        m_panelTransform.sizeDelta = new Vector2(m_panelTransform.sizeDelta.x, height);
        m_follower.m_offset        = new Vector3(0, height / 97.5f + 0.5f);
    }