AddEventlistner, получение ссылки на объект по нажатой кнопке
Я добавляю списки событий к некоторым кнопкам в цикле foreach в Unity 5.3.
foreach (Button btn in buttons)
{
btn.onClick.AddListener(() => levelBtnClicked());
}
Как я могу получить ссылку на кнопку, на которую нажали? Поэтому я могу проверить свойства кнопки в функции levelBtnClicked.
1 ответ
Решение
Сделать levelBtnClicked
функция взять Button
в качестве параметра затем передать в каждом Button
экземпляр параметра во время цикла.
Button[] buttons;
void Start()
{
foreach (Button btn in buttons)
{
btn.onClick.AddListener(() => levelBtnClicked(btn));
}
}
void levelBtnClicked(Button buttonClicked)
{
buttonClicked.image = ......
buttonClicked.name....
Debug.Log("Button Clicked: "+buttonClicked.name);
}