Search Issue Tracker
By Design
Votes
0
Found in
2017.4
2018.4
2019.2
2019.2.1f1
2019.3
2020.1
Issue ID
1177418
Regression
No
UI Elements' layering breaks when there is a Transparent object in between of them
How to reproduce:
1. Open the attached 'UILayeringBug.zip' project using the EnvIronman VM (optional) (more information in Edit)
2. In the Hierarchy window select 'Canvas' > 'Move This'
3. In the Inspector window change 'Pos Z' value to 250
4. Observe the Game window
Expected result: Default UI Material is rendered on top of TransparentMaterial
Actual result: TransparentMaterial is rendered on top of Default UI Material
Reproducible with: 2017.4.32f1, 2018.4.8f1, 2019.2.3f1, 2019.3.0b1, 2020.1.0a1
Notes:
1) Removing the 'Breaks Layering - Try removing' image results in the same behavior
2) The behavior is as expected when the non-transparent images are the same distance from the transparent image, for example, one of them is at Z = 250 and another one is Z = -250, while transparent material is at Z = 0, however, when 'Move This' is moved to Z = 251, the transparent image is rendered on top of the non-transparent
3) The issue does not reproduce when the transparent material's Custom Render Queue is set to a lesser value than the Default UI Material's Custom Render Queue (for example -2)
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
- Shader Compilation for projects with lots of Shaders can be slow (i.e. VFX Graph asset heavy projects)
- Crash on RebuildTransformHierarchyOrMarkForDestruction when opening a scene
- The Editor hangs when opening a project that uses local packages and Version Control
- Area Light is culled when Camera Frustrum is outside the lights range
- The characters of the bottom option in the Scene View Debug Draw Mode dropdown menu are cut off
Resolution Note (2020.1.X):
After looking at the issue this is by design. UI renders as one object based upon the bounds of the canvas plane. UI Elements in front or behind that plane are rendered as if they are on that plane. When the 3D object is moved closer to the camera then the canvas it will render ontop of all UI elements.