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