Search Issue Tracker
By Design
Votes
1
Found in [Package]
2.0.1
Issue ID
1164503
Regression
No
TextMeshPro overlay material only changes draw order in Scene View but not in Game View when render queue is set
How to reproduce:
1. Open the user-supplied project
2. Open "SampleScene" Scene
Expected result: Text Mesh Pro text in the Game View is rendered in front of other elements (according to the render queue 4000)
Actual result: Text Mesh Pro text in the Game View is rendered according to queue 3000 of UI sprites
Reproducible with: 2017.4.29f1, 2018.4.3f1, 2019.1.9f1, 2019.2.0b8, 2019.3.0a8
Reproducible with package versions: 1.3.0, 1.4.0, 1.4.1, 2.0.0, 2.0.1
-
Keepabee
Aug 28, 2020 10:52
I think the description matches my problem, too: using the "TextMesh Pro/Distance Field Overlay" shader on a Material OR setting the TMP_Text.isOverlay = true on an otherwise working "TextMesh Pro/Distance Field" using Material will stop rendering the text entirely in Game View (Scene view displays outline of text mesh, but won't render either).
Unity 2019.4.3f1, TextMesh Pro 2.1.0 and 2.1.1.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Standalone Player crashes with "TDerived GetOrLoad<TDerived>() where TDerived : T" when IL2CPP Code generation is set to "Faster (smaller) Builds"
- IndexOutOfRangeException and InvalidOperationException when logging XML string
- Script missing in "Assets/Settings/Mobile_Renderer/GlobalVolumeFeature" of "com.unity.template.urp-blank" template
- “Font Asset Creator - Error Code [Invalid_File_Structure]…“ error is logged when generating Font Assets from fonts with meta files from previous Editor versions
- Input.mousePosition returns (NaN, NaN, 0.00) when Scene view is opened
Resolution Note:
This is not a bug for the following reasons.
1. The Canvas Render Mode is set to Screen Space Overlay where as such all objects under the Canvas will be rendered with ZTest Always (ie. in Overlay queue).
2. Sorting order with the Canvas system is based on scene order / hierarchy where in this case the Text (TMP) object is 2nd to last and therefore will render before the last Icon object.
Again because the Canvas is in Screen Space Overlay, all objects are rendered in the Overlay queue where in this case, using the Distance Field Overlay shader has no effect since ZTest is already Always for all objects. In this case, using the Overlay shader or non overlay shader would produce the same results.
What was the desired behavior in this case? Was it that the text object would always render last irrespective of the scene hierarchy and Screen Space Overlay Render Mode?