Problem instantiating GUI element prefab

Started by
0 comments, last by KazYamof 8 years, 7 months ago

In my game project, I need to instantiate some ui elements like inventory and dialog windows. I created the corresponding prefab, and tested it by adding it to the scene to see if it worked well. The element created that way is located in the expected place (bottom of the screen and stretched from side to side). The problem starts when I try to instantiate the prefab from code:


var dlgWindow = Instantiate(dlgPrefab);
var canvas = GameObject.Find("Canvas");
var rt = dlgWindow.GetComponent<RectTransform>(); 
rt.SetParent(canvas.GetComponent<RectTransform>());

Which produces the undesired effect of placing the element in the lower left corner, and resizing it to a small, non visible square. Whats the proper way to do this?

Advertisement

Check your scale and UI anchors. Sometimes instantiate a prefab and change his parent change this values.

I like to ensure the anchor UI values stay correct by setting up they on the Awake().

This topic is closed to new replies.

Advertisement