- Home /
Instantiate GameObject into UI Canvas
So, I try to instantiate one of my image, and try to set the position as I wish. However, it doesn't work, and the position just went off. Here's my code:
Start ()
{
heartList = new List<Image> ();
for (int i = 0;i < heartNum;i++)
{
heart = Instantiate (heartPrefab) as Image;
heart.transform.SetParent (canvas, false);
heart.transform.localPosition = new Vector3 (heartX + (heartSpacingX * i), 0, 0);
heartList.Add (heart);
}
}
It would help a lot if you add the expected behaviour and the current behaviour. (Where do you want your image to be, and where does it end up now?) Because 'just went off' doesn't really explain your problem that well :p And what are the values 'heartX' and 'heartSpacingX'?
so the position inside the canvas for the heart should be (-45, 0, 0) and (50, 0, 0) and (145, 0, 0) since im creating 3 of them. However, they end up at like (450, 300, 0) these kinds of weird numbers. I've anchored and pivoted them at the left bottom corner.
I infer that your comment was to my answer so I'll reply to it:
The rect.anchoredPosition is a Vector2, not Vector3, but it shouldn't matter since you used 0 on that example. I've just tried a button with the anchor and pivot as you said and if you use rect.anchoredPosition = new Vector2(50,0), the object appears correctly and has the correct numbers on the inspector as well.
my answer HERE my help as some example code! (scroll down a little way)
Answer by vptb · Nov 19, 2014 at 01:18 PM
To change the properties of a RectTransform you use rect.sizeDelta to change the size of the object, and rect.anchoredPosition to change its position. Also take into account that this position is relative to the object anchor point. You can set the anchor point using rect.anchorMax and rect.anchorMin. For more information check: http://docs.unity3d.com/460/Documentation/ScriptReference/RectTransform.html
Your answer
Follow this Question
Related Questions
Instantiate Object At Local Position 2 Answers
Local Position 0,0,0 on Instantiate without Parent 0 Answers
Creates object under itself, not parent 0 Answers
Error in localPosition 1 Answer
Silly Instantiation Issue 0 Answers