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

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

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

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

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