Я знаю, что это может быть дубликат Как обнаружить щелчок/ сенсорные события в пользовательском интерфейсе и GameObjects, но на самом деле я пробовал то, что там есть. Но моя проблема все еще существует.
Вот мой код
GameObject o = null;
private void Start()
{
for (int i = 0; i < 6; i++)
{
o = Instantiate(obj) as GameObject;
o.transform.SetParent(pos_obj);
o.transform.localScale = Vector3.one;
o.transform.name = "chips " + i;
o.transform.localPosition = new Vector3(0, 0, 0);
NGUITools.SetActive(o, true);
UIGridReposition(UIGrid.Sorting.Vertical, true);
}
}
Эта строка кода выше - это то, как я создаю свои спрайты, и это похоже на мою иерархию.
чипсы 1
чипсы 2
фишки 3
чипсы 4
фишки 5
Теперь, когда я пытаюсь поместить эту строку кода в UI Button
public void TestClickEvent(){
Debug.Log("This object is :" + o.transform.gameobject.name);
}
Теперь, когда я нажимаю на созданный объект, только chips 5
будет выводиться на моей консоли. Даже если я нажму на первый, второй и т. д. Instantiated Object
Может кто-нибудь, пожалуйста, помогите мне.
То, что я пытаюсь сделать, это получить назначенный номер каждого Intantiated Object
, например
Если я нажму chips 1
, он выведет This object is : 1
;
Button button = o.GetComponent<Button>()
под циклом for, правильно ли @Programmer - person Ketskie   schedule 26.07.2018sprite
, у которого естьui button
- person Ketskie   schedule 26.07.2018TestClickEvent()', which is being assigned to all buttons, pointing to the last instantiated object. If that's all your code, then it would seem it's in
NGUITools.SetActive(o, true);`, но это не имеет смысла. - person Milan Egon Votrubec   schedule 26.07.2018