Resizing a RectTransform to fit a programmatically set Image at runtime
Hello everyone,
So I have a GUI Image object in my scene. It's sprite is not set using the inspector; it's set at runtime, programmatically. In the Awake function, I perform a Resources.Load<Sprite>("image-to-load")
, and then I set the GUI Image's overrideSprite
to it. A few things I do have set in the inspector are the Image's anchors, set to Stretch all around, and the Image's Preserve Aspect Ratio, which is checked.
When the image is loaded, it does a fantastic job of filling the screen height-wise with the image and keeping the aspect ratio, width-wise. The only problem is the RectTransform has kept the same width as the game screen. Why is this important? Because I have a button that's a child of the Image and is anchored to the upper right hand corner of its parent.
The behavior I want is for the button to shift to the upper right corner of the Image once it's loaded, but it's in the upper right corner of the RectTransform, which, depending on the type of screen, can be much wider.
I've tried a few different things, such as the ContentSizeFitter
, playing with the Image's anchor settings, and attempting to set the sizeDelta
, but nothing I've tried has worked so far; what usually happens is the image ends up expanding to it's actual pixel size, making it much larger than the screen.
Any help would be greatly appreciated. Thanks!
Hello kaiserkappel, I'm having your same issue. Did you find a proper solution?