Подскажите пожалуйста новичку.
Нужно сделать так, чтобы автоматически создавались кнопки. Первую создала через "GameObject -> UI -> Button"
Далее в скрипте С# прописала так
public class StartGUI : MonoBehaviour {
int m=10;

public GameObject button;
float X = 99, Z = 0, Y = 292;
// Use this for initialization
void Start() {
for (int j=0;j<10;j++)
{
Y -= 25;
GameObject but;
but = Instantiate(button) as GameObject;
but.name = "button." +(j+1);
Vector3 butpos = but.transform.position;
butpos.x = X;
butpos.z = Z;
butpos.y = Y;
but.transform.position = butpos;

}
}
Кнопки создаются. Но проблема состоит в том, что они не отображаются в режиме игры, так как изначально не являются дочерними Convas.
Как можно это исправить? Может существует функция, которая помещает обьект в дети другого?
Нигде не могу найти. Помогите, пожалуйста.

Принятый ответ

    var cloneButon = Instantiate(button);
    cloneButon.transform.SetParent(button.transform, false);
    cloneButon.name = "button." + cloneButon.transform.GetSiblingIndex();
У сетпарента обязательно выставляешь false, тогда положение/поворот/масштаб будет "как надо", на том же месте.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
17
9 лет назад
0
попробуйте по шаманить с показателем на картинке ,а сделать дочерним через св-во parent,
Child.transform.parent = Parent.transform;
Загруженные файлы
2
9
9 лет назад
2
ledoed, да, а в цикле это будет
but.transform.SetParent(button.transform.parent);
Или можно еще заморочиться через button.FindComponentInParent<Canvas>();
0
17
9 лет назад
0
ну а если в массив
0
4
8 лет назад
0
Кнопки лучше создавать через new Button, делать дочерним канвасу через parent, и вешать функционал.
0
27
8 лет назад
0
    var cloneButon = Instantiate(button);
    cloneButon.transform.SetParent(button.transform, false);
    cloneButon.name = "button." + cloneButon.transform.GetSiblingIndex();
У сетпарента обязательно выставляешь false, тогда положение/поворот/масштаб будет "как надо", на том же месте.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.