Свойства кнопки доступа к кнопке, которая находится внутри игрового объекта

#unity3d

#unity3d

Вопрос:

Я хочу получить доступ к свойствам кнопки, таким как .interactable = false; кнопки, которая находится внутри игрового объекта. Я хочу получить доступ к кнопке через GameObject. Я попробовал приведенный ниже метод, но смог получить доступ только к нескольким свойствам, таким как .SetActive .

gameObjectA.transform.GetChild(0).gameObject.SetActive(false);

где gameObjectA — это мой игровой объект, а getChild(0) — моя кнопка

Я хочу получить доступ к другим свойствам, таким как .Color , .Interactable и т.д.

Пожалуйста, помогите. Заранее спасибо

Комментарии:

1. Вы пытаетесь подключить контроллер кнопки к дочернему объекту?

2. Нет. Мой дочерний объект — это кнопка. Что я хочу, так это в основном выполнить следующие шаги при получении свойств кнопки: получить доступ к GameObject -> затем получить доступ к кнопке, которая является дочерним элементом GameObject -> и, наконец, к свойствам этой кнопки. Я надеюсь, что это проясняет. Я новичок в Unity, поэтому извините, если это звучит запутанно.

3. docs.unity3d.com/ScriptReference/GameObject.GetComponent.html .. пожалуйста, обязательно изучите основы, прежде чем приступать к реализации собственного приложения 🙂 .. см., например learn.unity.com/tutorial/getcomponent

Ответ №1:

Попробуйте использовать GetComponentInChildren , это вернет первый экземпляр кнопки, найденный в игровом объекте или одном из его дочерних элементов (рекурсивный)

 Button childbutton = GetComponentInChildren<Button>();
childbutton.interactable = false;
  

Если у вас есть несколько дочерних элементов с кнопками, вы можете использовать gameObject.transform.GetChild() тот, который вы уже использовали, с обычным GetComponent (замените x на дочерний индекс)

 Button childbutton = gameObjectA.transform.GetChild(x).GetComponent<Button>();
  

Вы также можете назначать и читать теги или имена, если вы постоянно меняете и добавляете кнопки и не хотите повторно изменять свой код