Sign in to follow this  

Problem instantiating GUI element prefab

This topic is 820 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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?

 

Share this post


Link to post
Share on other sites

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().

Share this post


Link to post
Share on other sites

This topic is 820 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this