Задать вопрос

Почему не передается параметр через onClick.AddListener?

Есть часть кода:
for (int i = 0; i < achieveList.Count; i++)
{
    test[i].GetComponent<Button>().onClick.AddListener(delegate { openDescr(i); } );
}


Необходимо, чтобы в компоненте Button, каждого объекта test, параметром onClick было число, равное i на момент присваивания слушателя. Но получается так, что каждая кнопка имеет параметр равный размер массива, то есть на 1 больше его последнего элемента. В чем может быть дело.
  • Вопрос задан
  • 886 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 2
HectorPrima
@HectorPrima
программист
Замыкания! Информации куча.
Вот к примеру
Ответ написан
flexer1992
@flexer1992
Unity Developer
Скопируйте то что хотите передать в локальную переменную внутри тела цикла.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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