05.04.2016, 23:17
|
#3
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: ButtonWrapper
Сообщение от seaman
Изучай Closure чтобы таких непоняток не было. Решается просто:
void InitLevelTasks() { levelChooser = new LevelChooser(imageForLevelTask); Transform root = PanelLevelsList; foreach (Transform child in root) { Destroy(child.gameObject); } int count = 48; for (int k = 0; k < count; ++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); } }
Т.е. делаешь временную переменную, которой присваиваешь текущее значение. И уже ее используешь в лямбда выражении
|
О! Только вчера до этого открытия своим мозгом допёр и тоже именно для гуя докапывался, что бы на генерируемые кнопки вешать события вот такого плана.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|