Quantcast
Channel: Questions in topic: "renderqueue"
Viewing all articles
Browse latest Browse all 161

How to Set Custom UI Image Material Render Order?

$
0
0
Using Unity's 4.6+ UI system, I've created a custom UI shader that is exactly like the built-in UI-Default.shader, except it does a color substitution from a gradient texture before returning the color in the fragment shader. The problem I'm encountering is that, when I create a material using my adjusted shader, and I assign that material to a UI Image component's "Material" slot, the render order rules of Unity's UI seem to no longer apply. Without the custom material, I can re-order UI elements in the hierarchy to move images in front of or behind one another, but with the custom material, it always renders behind everything else. Actually, the only way I've been able to get the ordering to work correctly is to add a custom component to the GameObject that does this: image.material.renderQueue = image.defaultMaterial.renderQueue; This seems to work OK (though I need to test more), but it seems a bit like a hack. Is there a "right" way to make custom shaders/materials respect the UI ordering rules? Is the ordering aspect a property of the shader or material or something else? Should I be using the CanvasRenderer component to do some sort of ordering operation or something? In general, it's really unclear how this is supposed to work, and the documentation hasn't been super helpful either. Any ideas to point me in the right direction?

Viewing all articles
Browse latest Browse all 161

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>