Привет всем, задача у меня простая. Как прикреплять правильно методы

в UI кнопки через скрипт?

Если по подробнее:
Написать скрипт, который будет создавать кнопки из БД, которые буду добавлять коинов на сколько то единиц. Кнопки создаются, метод вроде прикрепляется. В параметре я передаю id итема в БД через int i в цикле for, но почему то во всех кнопках передается одно число, количество итемов в БД.

Вот куски кода:
[SerializeField] private ItemSO itemsDatabase; // SO БД итемов, то есть данных на сколько единиц увеличивать коины
[SerializeField] private GameObject buttonPrefab; // Префаб кнопки к которому хочу прикрепить метод добавления
[SerializeField] private GameObject itemsUI; // UI объект где будут создаваться кнопки
[SerializeField] private CoinManager coinManager; // скрипт с методами управления коинов

private IEnumerator CreateItemButtons()
{
for (var i = 0; i < itemsDatabase.Items.Count; i++)
{
GameObject newItemButton = Instantiate(buttonPrefab, itemsUI.transform);
newItemButton.GetComponent<Button>().onClick.AddListener(() => coinManager.AddItemToPlayer(i));
Debug.Log("we add AddItemToPlayer(" + i + ")");
}
yield return null;
}

3 ответов

9 просмотров

У тебя замыкание происходит сделай что-то типа var cointId = i; и в лямдбу передавай ее

Egor-Vasilyev Автор вопроса
Boris
У тебя замыкание происходит сделай что-то типа var...

Аа блин, спасибо. Сейчас попробую 👍🏻

Egor-Vasilyev Автор вопроса
Boris
У тебя замыкание происходит сделай что-то типа var...

Спасибо тебе большое, получилось )) Мне надо изучить тему замыканий

Похожие вопросы

Обсуждают сегодня

Короче я тут узнал полный пиздец Что кучу постов которые я создавал через posted Спустя время не могу редактировать и менять Мол телега возвращае ошибку Это реально так ...
inc.
13
Привет, сталкивался кто с такой ситуацией? У меня есть модальное окно Bootstrap, в нем кнопка закрытия: <button type="button" class="btn-close" data-bs-dismiss="modal" aria-...
Виталий
3
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
что это и почему оно? executor.start_polling(bot, skip_updates=True, on_startup=on_startup, File "/usr/local/lib/python3.10/dist-packages/aiogram/utils/executor.py", line 4...
𐌍𐌄 ᕓ𐌄𐌓𐌌Ꝋ𐌓𐌄
2
Окрошка! На квасе или кефире или на пиве?!
Akcium Сергей
4
Кто-то юзал insomnia? Удобная штука ужас
𐌍𐌄 ᕓ𐌄𐌓𐌌Ꝋ𐌓𐌄
3
А что насчет FluentValidation? тоже ведь есть альтернатива у МС.
devman
13
Напомните пожалуйста, v1.1 работает на PHP 8.2?
Ross
7
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Ребят, всем привет) Кто юзал/юзает Postgres? Я на MySQL сделал простенький сайт для диплома, но я внезапно обнаружил условие что надо было на Postgres) Проблема в том, что я н...
Dororo Steeeve
4
Карта сайта