Как подписать метод на кнопку с помощью editor script

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Как подписать метод на кнопку с помощью editor script

Сообщение Ostavnow 16 мар 2023, 18:34

Всем привет! Не могу понять почему у меня метод не подписывается на событие.Я подписываю кнопку с помощью editor скриптом, вот такой строчкой:
Синтаксис:
Используется csharp
buyButton.onClick.AddListener(BuySkin);

Я уверен что эта строчка работает так как перед ней я проверил логом что эта переменная не пуста и именно на неё метод подписывается и по семантике метода всё хорошо.Но в инспекторе нечего нет.Помогите пожалуйста, ну просто мистика какая-то, а не ошибка ~x( .Заранее спасибо
Последний раз редактировалось Ostavnow 17 мар 2023, 20:28, всего редактировалось 1 раз.
Аватара пользователя
Ostavnow
UNец
 
Сообщения: 35
Зарегистрирован: 27 ноя 2021, 16:22
Откуда: Краснодар

Re: Как подписать метод на кнопку

Сообщение krauser0993 16 мар 2023, 19:51

так в инспекторе и не должно быть, хотя по факту будет
krauser0993
UNITрон
 
Сообщения: 342
Зарегистрирован: 05 апр 2019, 15:17

Re: Как подписать метод на кнопку

Сообщение Ostavnow 16 мар 2023, 19:55

Серьёзно? ладно ща playmode проверю
Нерешаемых задач несуществует!
И швец, и жнец, и х!@м на дуде игрец
Наш Discord канал: _https://discord.gg/DeamAmmM . Присойденяйся!
Я в Discord: Ostavnow#2287
Аватара пользователя
Ostavnow
UNец
 
Сообщения: 35
Зарегистрирован: 27 ноя 2021, 16:22
Откуда: Краснодар

Re: Как подписать метод на кнопку

Сообщение Ostavnow 16 мар 2023, 19:58

krauser0993 писал(а):так в инспекторе и не должно быть, хотя по факту будет

Да не, оно так не работает, я проверил
Нерешаемых задач несуществует!
И швец, и жнец, и х!@м на дуде игрец
Наш Discord канал: _https://discord.gg/DeamAmmM . Присойденяйся!
Я в Discord: Ostavnow#2287
Аватара пользователя
Ostavnow
UNец
 
Сообщения: 35
Зарегистрирован: 27 ноя 2021, 16:22
Откуда: Краснодар

Re: Как подписать метод на кнопку

Сообщение Alkos26Rus 16 мар 2023, 20:56

Ostavnow писал(а):
krauser0993 писал(а):так в инспекторе и не должно быть, хотя по факту будет

Да не, оно так не работает, я проверил

Делай лог в метод BuySkin, тебе же говорят что в инспекторе не будет видно
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1642
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Как подписать метод на кнопку

Сообщение Ostavnow 17 мар 2023, 15:15

Alkos26Rus писал(а):
Ostavnow писал(а):
krauser0993 писал(а):так в инспекторе и не должно быть, хотя по факту будет

Да не, оно так не работает, я проверил

Делай лог в метод BuySkin, тебе же говорят что в инспекторе не будет видно

Да ну, а я этого конечно не сделал(это сарказм) X(
Но у меня получается подписать в другой сцене.При старте сцены, находится кнопка и я подписываю ей лямбду () => Debug.Log("Мы купили скин") и всё работает, ведь я и раньше с помощью скриптов подписывал методы, но почему-то, когда я пытаюсь подписать кнопку с помощью едитор скрипт и потом в следствии, когда я режиме playmode нажимаю на неё то ни!у@ нет
Нерешаемых задач несуществует!
И швец, и жнец, и х!@м на дуде игрец
Наш Discord канал: _https://discord.gg/DeamAmmM . Присойденяйся!
Я в Discord: Ostavnow#2287
Аватара пользователя
Ostavnow
UNец
 
Сообщения: 35
Зарегистрирован: 27 ноя 2021, 16:22
Откуда: Краснодар

Re: Как подписать метод на кнопку с помощью editor script

Сообщение 1max1 18 мар 2023, 08:34

Если речь идет про custom editor, то там могут быть нюансы с сериализацией, надо дергать https://docs.unity3d.com/ScriptReferenc ... rties.html
Да и есть шанс что при переходе в плей мод он твою лямбду просто скинет тк ему обычно нужна ссылка на метод, который в скрипте, который в объекте)
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Как подписать метод на кнопку с помощью editor script

Сообщение Ostavnow 18 мар 2023, 12:18

1max1 писал(а):Если речь идет про custom editor, то там могут быть нюансы с сериализацией, надо дергать https://docs.unity3d.com/ScriptReferenc ... rties.html
Да и есть шанс что при переходе в плей мод он твою лямбду просто скинет тк ему обычно нужна ссылка на метод, который в скрипте, который в объекте)

Ну я вот тоже думал что есть какой-нибуть прикол с сериализацией, я просто занимался другой задачей для экономии времени).Обычный метод подписать, я уже пробывал, он ссылку на метод с таким же успехом скидывает
Нерешаемых задач несуществует!
И швец, и жнец, и х!@м на дуде игрец
Наш Discord канал: _https://discord.gg/DeamAmmM . Присойденяйся!
Я в Discord: Ostavnow#2287
Аватара пользователя
Ostavnow
UNец
 
Сообщения: 35
Зарегистрирован: 27 ноя 2021, 16:22
Откуда: Краснодар

Re: Как подписать метод на кнопку с помощью editor script

Сообщение Ostavnow 18 мар 2023, 20:06

Решение найдено вот здесь: https://stackoverflow.com/questions/432 ... s-method-a
Получается чтобы подписать метод, который принимает 1 параметр типа int, надо написать следующий код:
Синтаксис:
Используется csharp
UnityAction<int> action = new UnityAction<int>(BuySkin);
UnityEventTools.AddIntPersistentListener(buyButton.onClick,action,index);
 

И есть ещё обобщённый метод AddPersistentListener который принимает до 4 параметров, которые должны расширять класс Unity.Object, а если передаются простые типы данных то надо использовать AddТипPersistentListener()
Нерешаемых задач несуществует!
И швец, и жнец, и х!@м на дуде игрец
Наш Discord канал: _https://discord.gg/DeamAmmM . Присойденяйся!
Я в Discord: Ostavnow#2287
Аватара пользователя
Ostavnow
UNец
 
Сообщения: 35
Зарегистрирован: 27 ноя 2021, 16:22
Откуда: Краснодар

Re: Как подписать метод на кнопку с помощью editor script

Сообщение 1max1 18 мар 2023, 21:13

Редакторные скрипты это всегда головная боль.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Google [Bot] и гости: 27