Drawing on top of other material.

I need to render a material and then render another object on top of that one but without any poke through, so like a decal. My plan was to set the renderqueue for the first material to say 1998 and then the material that I want on top set its queue to 1999 and set ZTest Always and ZWrtie Off. Problem is other objects that rendered afterwards show the 2nd material over the top as if the renerqueue is ignored and that the overlay material is just drawn last all the time. Am I doing something wrong? How can I render a second object over another one like a decal ie for drawing road markings. I have tried Offset -1 -1 but that seems to require an actual mesh offset as well to work, again I thought that the Offset values were meant to allow easy drawing on top of objects but it doesn’t seem to work very well.

ZTest always will make your object to be visible on top of any other objects. Don`t change it and objects will be renderer as you need. By default it is LEqual. Keep ZWrite Off off and RenderQueues - for Road = Geometry-500 and for marks Geometry.

Maybe Projector will be suitable for your case (If marks are textures) - Unity - Manual: Projector component