Hello, I am a Roblox game developer. I often come across this problem, and it is annoying as hell. When I put my UI in the playergui, it works fine. Otherwise, not so much…
You can clearly see how it does not zoom with the camera in the gui, and in the billboardgui… not so nice.
This is caused by the text forced to be scaled with 0, 100, 0, 100 or so, It is only logical it should do this. However, on a billboardgui we need more control over this. Please fix this bug soon.
Expected behavior
I would expect it to work like imagelabels, which are workarounds currently. These act purely like the frame, and stick to the size.
It should NOT be cut in half.
You can use scale on billboard’s size to make the billboard resize dynamically, and then you can use scale in the textlable size, with TextScale set to true.
If you don’t want it to scale, you can set the billboard size to use offset.
Hello! I believe this isn’t a bug, but we understand this behavior can definitely be confusing.
For reference, Offset is the exact # of pixels on screen, so 200 X Offset is 200px wide on both iPhone and Average Laptop. On the other hand, Scale is referencing the parent’s size and calculating a % of it, so .5 X Scale will always be 50% of the parent’s total X pixels.
For BillboardGuis, as per the documentation, “the Offset portion works the same, but the Scale portion is used as a size in studs in 3D space.”
When you leave that UI in offset in the 3D world, as you move your camera back and forth, the “[E]” text will always be 100 pixels on your camera viewport and therefore will scale up or down to maintain that, which will be clipped as it sizes greater than the parent BillboardGui, resulting in the cropping and shrinking behavior.
For your intended behavior, it is recommended to use Scale so it scales smaller and bigger based on your camera viewport as “…the Scale portion is used as a size in studs in 3D space.”
“When creating size-scaled BillboardGuis, it’s important to make sure all the UI objects within are using Scale sizing and all text has TextLabel.TextScaled enabled, to ensure correct scaling.”