Страница 1 из 1

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

СообщениеДобавлено: 22 дек 2017, 07:57
NapalmRain
Доброго всем времени суток, дорогие коллеги!

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

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

Буду признателен за любой совет!

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

СообщениеДобавлено: 22 дек 2017, 09:40
Tolking
Универсальный вариант:

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

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

СообщениеДобавлено: 22 дек 2017, 11:55
NapalmRain
Tolking писал(а):Универсальный вариант:

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

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

Если не секрет, откуда информация о таком методе? В справке Юнити я ничего подобного не нашёл (хотя, возможно, хреново искал)

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

СообщениеДобавлено: 22 дек 2017, 13:29
Tolking
:) Не секрет из "справки" по C#...

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

СообщениеДобавлено: 22 дек 2017, 14:07
NapalmRain
Tolking писал(а)::) Не секрет из "справки" по C#...

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

Ещё раз спасибо! В очередной раз утвердился в мысли, что надо в первую очередь подтянуть знания в языке...

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

СообщениеДобавлено: 22 дек 2017, 21:35
seaman
EventSystem.current.currentSelectedGameObject - последний активный объект, т.е. Ваша кнопка

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

СообщениеДобавлено: 22 дек 2017, 21:39
NapalmRain
seaman писал(а):EventSystem.current.currentSelectedGameObject - последний активный объект, т.е. Ваша кнопка

Благодарю! буду иметь это способ тоже ввиду.