SpriteRenderer: Why is the floor being rendered on top of other objects?

Using Unity 6000.0.32f1, URP.

I’m trying to create a 3D game which includes 2D sprites and am struggling with initial setup. The following scene shows a bunch of characters with no floor underneath them:

They are using sprite renderers that pop up vertically (in the Y axis).

Now, if I add a floor beneath them, you’ll notice that some of them disappear:

If I lower the camera, you can see that the floor is being rendered on top of them:

If I rotate the camera, the sprites that are visible and invisible change:

I’ve been trying to find a way to get them all appearing (like they did before the floor was enabled, in the first screenshot), but haven’t found any luck.

Note that if I replace the materials used by all of the sprite renderers with the Lit material (instead of Sprite-Unlit-Default) then the floor correctly renders below the characters (ignoring the fact that they’re all dark):

However, when I tried creating a new shader (via Shader Graph) based on the Lit material, the floor came back above some of those characters again:


Fiddling with the depth test setting didn’t resolve the issue.

So… I don’t really know what’s going on here. Using the Sprite Renderer’s sort order isn’t an option in a 3D game - I just want things to be ordered “normally” like we can see with the Lit shader screenshot above. However, I still want to use the Colour and other settings of the Sprite Renderer, so am trying to stick with that instead of moving to meshes.

Looking at some old threads, there was mention of “Transparency Sort Mode”. However, this option is no longer appearing in the URP data settings in Unity 6, nor the project settings, so I can’t see any way to modify that. (I did try modifying the old project settings for built in renderer because one thread I saw mentioned that helping them despite using URP. But, this did nothing for me.)

i think the issue is being caused by batching/instancing, i know when i originally made a similar shader i was using sprite renderers but they batch without much regard to depth so they kind of suck in perspective 3d. i would highly suggest using mesh quads instead, my workflow is to change the offset and dimensions of a quad in the shader with material property blocks (though i don’t think they exist in urp.)

and since they’re 3d objects you’ll never have sorting issues again.