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);
}
Другие вопросы по тегам