Hello,
im currently creating a game and at the moment im building the main menu. I have multiple menus like settings menu or main menu but they all share the same background which is located under the canvas. My problem is, I have a character selection menu which contains an empty object with a sprite renderer but no matter how I sort the layers, the empty object is always behind the background. But the sprite it holds is active since I can see it as soon as I move it outside of the background? That empty object is the only object which gives me that problem…
Three (3) primary ways that Unity draws / stacks / sorts / layers / overlays stuff:
In short, as far as the Standard Rendering Pipeline,
The default 3D Renderers draw stuff according to Z depth - distance from camera.
SpriteRenderers draw according to their Sorting Layer and Sorting Depth properties
UI Canvas Renderers draw in linear transform sequence, like a stack of papers
If you find that you need to mix and match items using these different ways of rendering, and have them appear in ways they are not initially designed for, you need to:
identify what you are using
search online for the combination of things you are doing and how to to achieve what you want.
There may be more than one solution to try.
For instance, you may even use multiple co-located cameras to more-explicitly control apparent draw ordering.
Additional reading in the official docs:
And SortingGroups can also be extremely helpful in certain circumstances:
Other rendering pipelines may have other ways of layering (HDRP and URP). Go see the latest docs for details.