I need to control the order in which some opaque geometry is rendered, such that two objects can occupy more or less the same space, but one object will always be rendered over top of the other. The RenderQueue tag in my shaders is working fine with transparent objects, but not with opaque objects; I need transparent objects in a higher renderqueue to be able to render over opaque objects and visi versa.
it’s also worth mentioning that the opaque objects are often characters that need to occlude themselves (such as a character’s arm over it’s body), so simply setting ZWrite Off isn’t a solution 
Is there a solution for this? I’m currently doing it with multiple camera passes, but the extra RenderTextures involved is a waste of memory, and is hurting my performance.
I’ve got a solution, for anyone who finds this question. Not sure if it’s a fix in all cases, but it looks okay so far. I’m adjusting the “offset” value of my shader, as shown here:
Since my game is a side scroller, I'm using Offset -100,-100 for a start and will adjust as needed.