Как определить какая из кнопок вызвала метод?

Графический интерфейс пользователя

Как определить какая из кнопок вызвала метод?

Сообщение NapalmRain 22 дек 2017, 07:57

Доброго всем времени суток, дорогие коллеги!

Есть несколько, созданных программно кнопок.
К ним так же программно привязывается обработчик нажания
Синтаксис:
Используется csharp
button.onClick.AddListener(SomeFunction)

Можно ли каким-то образом из SomeFunction понять, какая именно из кнопок его вызвала?
Выло бы проще, если б можно было привязать к обработчику функцию с параметром, но как это сделать я тоже не понял.

Буду признателен за любой совет!
NapalmRain
UNIт
 
Сообщения: 81
Зарегистрирован: 24 янв 2014, 15:58

Re: Как определить какая из кнопок вызвала метод?

Сообщение Tolking 22 дек 2017, 09:40

Универсальный вариант:

AddListener(delegate{param=somevalue; SomeFunction(param)})
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2715
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Как определить какая из кнопок вызвала метод?

Сообщение NapalmRain 22 дек 2017, 11:55

Tolking писал(а):Универсальный вариант:

AddListener(delegate{param=somevalue; SomeFunction(param)})

Отлично, спасибо!

Если не секрет, откуда информация о таком методе? В справке Юнити я ничего подобного не нашёл (хотя, возможно, хреново искал)
NapalmRain
UNIт
 
Сообщения: 81
Зарегистрирован: 24 янв 2014, 15:58

Re: Как определить какая из кнопок вызвала метод?

Сообщение Tolking 22 дек 2017, 13:29

:) Не секрет из "справки" по C#...
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2715
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Как определить какая из кнопок вызвала метод?

Сообщение NapalmRain 22 дек 2017, 14:07

Tolking писал(а)::) Не секрет из "справки" по C#...

Да я уже понял, после того как испытал, решил погуглить про делегаты, начитался вдоволь :)

Ещё раз спасибо! В очередной раз утвердился в мысли, что надо в первую очередь подтянуть знания в языке...
NapalmRain
UNIт
 
Сообщения: 81
Зарегистрирован: 24 янв 2014, 15:58

Re: Как определить какая из кнопок вызвала метод?

Сообщение seaman 22 дек 2017, 21:35

EventSystem.current.currentSelectedGameObject - последний активный объект, т.е. Ваша кнопка
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Как определить какая из кнопок вызвала метод?

Сообщение NapalmRain 22 дек 2017, 21:39

seaman писал(а):EventSystem.current.currentSelectedGameObject - последний активный объект, т.е. Ваша кнопка

Благодарю! буду иметь это способ тоже ввиду.
NapalmRain
UNIт
 
Сообщения: 81
Зарегистрирован: 24 янв 2014, 15:58


Вернуться в uGUI

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2