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

Как в unity программно в цикле добавить события на кнопки?

Почему при попытке писать так, debug.log выводит последний i цикла (а надо чтоб выводил 0,1,2....):
//цикл...
go.transform.Find("btn1").GetComponent<Button>().onClick.AddListener(
                    delegate 
                    {
                        Debug.Log( i );
                    }
);
  • Вопрос задан
  • 441 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skysmart
    Unity для детей
    3 месяца
    Далее
  • Skysmart
    Профессия «Разработчик игр» для школьников
    2 года
    Далее
  • Rebotica
    Разработка игр для детей и подростков
    2 года
    Далее
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
Попробуйте так) должно понять что отдельный экземплярчик переменной, а не переменная из цикла.
по сути просто ссылалось на переменную цикла(область в памяти), а то что она меняется - делегат не волновало.
int currentNum = i;
....
delegate 
                    {

                        Debug.Log(currentNum  );
                    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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