Подскажите пожалуйста новичку.
Нужно сделать так, чтобы автоматически создавались кнопки. Первую создала через "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, тогда положение/поворот/масштаб будет "как надо", на том же месте.
Смотрите также:
Комментарии
попробуйте по шаманить с показателем на картинке ,а сделать дочерним через св-во parent,
Child.transform.parent = Parent.transform;
ledoed, да, а в цикле это будет
but.transform.SetParent(button.transform.parent);
Или можно еще заморочиться через button.FindComponentInParent<Canvas>();
ну а если в массив
Кнопки лучше создавать через new Button, делать дочерним канвасу через parent, и вешать функционал.
var cloneButon = Instantiate(button); cloneButon.transform.SetParent(button.transform, false); cloneButon.name = "button." + cloneButon.transform.GetSiblingIndex();
У сетпарента обязательно выставляешь false, тогда положение/поворот/масштаб будет "как надо", на том же месте.
Возможность добавлять комментарии была ограничена
CollectableItemData.cs
[CreateMenuItem(fileName = "newItem", menuName = "Data/Items/Collectable", order = 51]