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

Button On Click()

СообщениеДобавлено: 11 сен 2019, 14:22
Andry62324
День добрый!

Подскажите можно из скрипта отключить события которые добавлены на On Click(), если можно то как?

Re: Button On Click()

СообщениеДобавлено: 11 сен 2019, 16:15
Jarico
добавляет слушателя (метод или лямбда делегат)
https://docs.unity3d.com/ru/current/ScriptReference/Events.UnityEvent.AddListener.html
удаляет слушателя (метод или лямбда делегат)
https://docs.unity3d.com/ru/current/ScriptReference/Events.UnityEvent.RemoveListener.html

пример обработки нажатия с лямбда делегатом
Синтаксис:
Используется csharp
public Button m_Button;

private void Awake()
{
m_Button.onClick.AddListener(
delegate
{
print("m_Button -> Clicked!!");
});
}
 

Re: Button On Click()

СообщениеДобавлено: 12 сен 2019, 11:28
Woland
Если я не ошибаюсь, то есть один нюанс (как в анекдоте): если изначально в редакторе события уже добавлены на кнопку, то добавление/удаление событий из скрипта не работает. То есть чтоб скрипт работал, нужна пустая кнопка без событий.

Но это не точно, надо проверять.

Re: Button On Click()

СообщениеДобавлено: 12 сен 2019, 12:12
Tolking
Удаление не работает - это точно. Уже проверено... Добавление и удаление добавленного программно работает...

Re: Button On Click()

СообщениеДобавлено: 12 сен 2019, 15:14
Woland
Да, приходится все делать через код. Если нужны какие-то события по умолчанию, но приходится в старте прописывать добавление этих событий.

Re: Button On Click()

СообщениеДобавлено: 12 сен 2019, 15:16
Woolf
Woland писал(а):Если я не ошибаюсь, то есть один нюанс (как в анекдоте): если изначально в редакторе события уже добавлены на кнопку, то добавление/удаление событий из скрипта не работает. То есть чтоб скрипт работал, нужна пустая кнопка без событий.

Но это не точно, надо проверять.


Вы уверены?
Синтаксис:
Используется csharp
btn.onClick.RemoveAllListeners();
btn.onClick.AddListener(() => btnSelectBag(i));

у меня работает.

Re: Button On Click()

СообщениеДобавлено: 15 сен 2019, 16:16
Andry62324
Благодарю. Попробую.