Тема: ButtonWrapper
Показать сообщение отдельно
Старый 05.04.2016, 22:18   #2
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: ButtonWrapper

Изучай Closure чтобы таких непоняток не было. Решается просто:
void InitLevelTasks()
{
    
levelChooser = new LevelChooser(imageForLevelTask);
    
Transform root PanelLevelsList;
    foreach (
Transform child in root) {
        
Destroy(child.gameObject);
    }
    
int count 48;
    for (
int k 0count; ++k) {
        var clone = 
GameObject.Instantiate(buttonPrefab);
        clone.
transform.SetParent(root);
        clone.
transform.localScale Vector3.one;

        var 
button = clone.GetComponent<Button>();

        
text button.transform.Find("Text").GetComponent<Text>();
        
text.text ""+k;
        
int j k;
        
UnityAction act = new UnityAction (() => SelectLevel_Start (j));
        
button.onClick.AddListener(act);
    }

Т.е. делаешь временную переменную, которой присваиваешь текущее значение. И уже ее используешь в лямбда выражении
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо seaman за это полезное сообщение:
St_AnGer (05.04.2016), Жека (06.04.2016)