- Home /
5.3.5 - Blurry UI text after switching canvasses - until text is refreshed by turning visibility off/on or changing resolution
Hi all,
I have multiple scenes in my project where the canvasses are switched between, each canvas having UI text included on it.
The project was originally created in 5.0 and I have just updated to 5.3.5 and I am now encountering the following issue -
The canvas that is active when the scene first loads displays all UI text just fine, but as soon as I switch to another canvas with the exact same text on, the text on the new canvas is blurred. As soon as I turn the text object off/on (via a button click) it appears to refresh it and it all displays fine again. It is also rectified by changing the display resolution in the editor play window.
It appears as though unless it has a 'refresh' through clicking something else, or is on screen when the scene first loads, it appears blurry.
The font is 'Open Sans Bold' and I am switching canvasses via a raycast script.
I have read issues of text blurriness in 5.3, but most instances appear to be down to the size of the text being in odd numbers which mine isn't.
Screenshots attached. The settings shown are the same for all canvasses and text.
Any help would be appreciated.
Thanks in advance
Answer by PhantomSarcasm · Jul 18, 2016 at 01:31 PM
not if you serve this but when I use canvas, do not select the option to "perfect pixel" I do not like past that problem, but if it's trying.
Answer by prinzwurstbrot · Sep 30, 2016 at 06:01 PM
Did you find any solution to this ? In my case I switch scenes, one without a canvas to one with a canvas on it. When the second scene is loaded the ui looks blurry but if I just build scene 2 everything is nice and crisp. So switching might do something to the canvas scaler ?
I tied your solution (disable the gameobjects where the Text Component sits on via hotkey) but that did not work. After gameobject.SetActive(True) the text apears blurry again.
Answer by dval · Sep 30, 2016 at 07:01 PM
Some thoughts, Have you tried using a Material that uses Unity's UI-Text Shader ? or any material? Forcing a specific Shader will affect text rendering. (i.e. using the wrong one will render blank squares instead of characters, or ignore aliasing because it's a cut-out shader...)
And is 'Best Fit' somehow screwing with the sizing/aliasing ?
Is the text being written before the screen size is known? It's possible it's sharper after the refresh, because it has runtime dimension to render to. I am not sure if any of the rendering for UI was changed between versions.
Also, toggling the GameObject or Text after the app is loaded, but before panel is called could be used as a work around.
Answer by Yiming075 · Apr 24, 2021 at 08:06 AM
use gameobject.SetActive(true) instead of canvas.enabled = true can make them update
Your answer
Follow this Question
Related Questions
Canvas is flipping, 2D game 0 Answers
How do I carry over ui text to the next by obtaining the gameobject children 0 Answers
,InputField backspace returns already send text 0 Answers
Unity 5 UI GUI Text Canvas Screen Resolution Adaption Problem 2 Answers
How to know if your Text element will create a new line? 1 Answer