Excact reasons and behaviour is still unknown for me so I cannot provide much information but it needs to be adressed nonetheless as it’s quite annoying and makes games’ UI look ugly
The issue
My main menu (and other “openable” UI frames) is basically a canvas group to make it possible to animate it. Whenever I set graphics level to 3 or below, everything in canvas group becomes low quality. When set to 4+ it looks normal. Happens both in studio and live servers. Encountered this issue on PC (Windows 11) and on tablet (Xiaomi Pad 6 / Android 14). No need to restart the game - the issue will appear/disappear ~1 second later after adjusting graphics level
Main menu with graphics level set to 3. Take a not that Waiting for players text label located at the top is still high quality as it’s technically not part of the main menu canvas group
Video showcase of this issue in my game
Transforming this excact main menu from a canvas group to a normal frame looks normal regardless of graphics level (had to be tested on a different place since this UI is hardcoded / hard to make it to work)
Reproduction steps
It’s almost? guaranteed to happen. Make a canvas group, add some elements to it (for example text labels), set graphics level to 3 or lower, set the size of a canvas group big enough and you get the low quality UI inside of it
I do think it’s the intended behaviour, when putting your graphics down it tries to use less memory and a good way to do that is to reduce the quality of canvas groups since they are being rendered differently.
What will happen with different graphics settings or the device is out of memory? CanvasGroup items will be subjected to down-res fallbacks when the system is high on texture memory pressure, which means there could be appearance (resolution) differences depending on system memory conditions.
I thought about that, but then again it doesn’t decrease a quality for smaller canvas groups, and I doubt UI is taking that much memory. If that’s the case then… I might as well just don’t do anything with that and keep it as it is since I like it
-- CanvasGroups render their contents to a texture. Smaller CanvasGroup = smaller texture, so they are less likely to be affected by lower graphics settings. Why are you using a CanvasGroup for these menus in the first place? They should be used fairly sparingly due to their behavior.
-- Yes but it inherently makes the performance, and visual quality, of your game worse for very little tradeoff. Especially since your menus aren’t overlapping so you aren’t really even getting any benefit from using CanvasGroup. Just tag all of the UI elements and manually set their transparency, this isn’t a good use of CanvasGroups.