Как у canvas в unity через скрипт получить его дочерний button
, чтобы потом иметь возможность обращаться к нему и проверять на нажатия ?
Пробовал так:
GUIElement Button;
GUIElement[] ge= gameObject.GetComponents<GUIElement>();
for (int i = 0; i < ge.Length; i++)
{
if (ge[i].tag == "button1")
{
Button = ge[i];
}
}
но понятно, что такой вариант не подходит по здравому смыслу.
Да, я знаю, что в самом редакторе есть встроенный "редактор событий" - по типу OnClick
- и можно прописать цепочку условий, но там нельзя подписать на свой обработчик событий, поэтому и спрашиваю как обратиться к самой кнопке как к дочернему элементу.
Кажется нужно всего лишь вот это: GetComponentInChildren
private Button button;
void Start( ) {
button = gameObject.GetComponentInChildren<Button>();
if(button)
Debug.Log(test.interactable);
else
Debug.Log(":'-(");
}
Еще варианты, когда известна иерархия объекта. Например использовать GetChild
Например есть структура
Canvas
GameObject
GameObject
Button
Slider
Image
Скрипт например будет висеть на Canvas
→ GameObject
. Тогда:
void Start () {
var button = gameObject.transform.GetChild(0).transform.GetChild(0).GetComponent<Button>();
Debug.Log(button.interactable);
}
Также если известна структура можно использовать Find:
void Start () {
var button = GameObject.Find("GameObject/Button").GetComponent<Button>();
Debug.Log(button.interactable);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите есть ли обработчик closeconnect TcpClient?Нужен для вывода информации о дисконнекте
В C# (windows forms) добавил новый язык к форме, изменил текст компонентов и тд, создался файл ресурсов для языка который добавил, добавил свою строку...
Использую библиотеку CefSharpСтолкнулась с проблемой обновления файлов
Нашел такой пример, но для работы данного кода надо добавить ссылку на using ADSSECURITYLib, но нигде я не нашел где взять эту ссылкуADsSecurity