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

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


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

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

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