Ошибка при попытке получить текст Button в Unity
Мне нужно получить текст, находящийся внутри кнопки в Unity. Движок выдает NullReferenceException.Что я делаю не так? Вот код метода целиком
public void BuyThing(GameObject panel, Thing thing)
{
Button button = panel.GetComponent<Button>();
string costText = button.GetComponentInChildren<Text>().text;
var child = panel.transform.GetChild(2);
string incomeText = child.GetComponent<TMPro.TextMeshProUGUI>().text;
Debug.Log(incomeText);
Debug.Log(costText);
}
GetComponent достает кнопку, я проверял. Ошибка именно в следующей строке. Я пробовал вместо Text - TextMeshProUGUI, тоже не помогает.
Вот иерархия в Unity.
Ответы (1 шт):
Автор решения: reduct
→ Ссылка
transform.GetChild(int) возвращает один из дочерних объектов родителя по индексу. Как и в массиве, индекс начинается с нуля. По вашему второму скриншоту видно, что у кнопки есть только один дочерний объект, соответственно, чтобы его получить, в вашем случае нужно заменить индекс "2" на "0".
var child = panel.transform.GetChild(0);
