Страница 1 из 1

создание экземпляра кнопки

СообщениеДобавлено: 15 мар 2017, 19:45
olvol
Вопрос от новичка. Есть canvas, у него есть дочерний panel, у которого в свою очередь есть дочерняя button. Я пытаюсь создать экземпляр этой самой button. Т.е. экземпляр-то я создаю, но создается он не как дочерний к panel, а становится просто родительским.Ну ок. через transform.SetParent(objParent.transform, false) задал ему родителя canvas, все работает, вопросов нет. Но мне нужно чтобы экземпляр button являлся дочерним к panel! Как это сделать? Как назначить родительским объектом именно panel, который сам дочерний к canvas?

Re: создание экземпляра кнопки

СообщениеДобавлено: 15 мар 2017, 20:29
olvol
решил сам, но логики понять не могу
вот так работает:
Синтаксис:
Используется csharp
(Instantiate(objBtn, pos, Quaternion.identity) as GameObject).transform.SetParent(objParent.transform,false)

создает экземпляр именно как дочерний к panel
а вот так уже не работает:
Синтаксис:
Используется csharp
Instantiate(objBtn, pos, Quaternion.identity);
objBtn.transform.SetParent(objParent.transform, false);

почему второй вариант создает кнопку как родительский объект?

Re: создание экземпляра кнопки

СообщениеДобавлено: 15 мар 2017, 20:31
gearofage
Вы сами все расписали, transform.SetParent(objParent.transform, false); закиньте в objParent Panel

Re: создание экземпляра кнопки

СообщениеДобавлено: 16 мар 2017, 21:47
olvol
gearofage писал(а):Вы сами все расписали, transform.SetParent(objParent.transform, false); закиньте в objParent Panel


ну panel и так находится в objParent в обоих случаях:
Синтаксис:
Используется csharp
GameObject objParent = GameObject.Find("Panel");
 


так или иначе подправил второй вариант,вдруг кому понадобится. работает он так:
Синтаксис:
Используется csharp
GameObject gobj= Instantiate(objBtn, pos, Quaternion.identity);
                gobj.transform.SetParent(objParent.transform, false);