1. Camera
Camera是unity中最优先的渲染顺序控制。depth越大,渲染顺序越靠后。
2、Sorting Layer
在Tags & Layers设置中可见
3、Order In Layer
相对于Sorting Layer的子排序,用这个值做比较时只有都在同一层时才有效。
4、RenderQueue
Shader中对Tags设置的“Queue”。
当Sorting Layer和Order In Layer相同时
RenderQueue小的先进渲染管线。
当Sorting Layer和Order In Layer不相同时!
当两个材质使用了不同的RenderQueue,且这两个RenderQueue都在[0~2500]或[2501~5000]时,SortingLayer和OrderInLayer的排序生效。
当两个材质使用了不同的RenderQueue,且这两个RenderQueue分别在[0~2500]和[2501~5000]时,则一定会按照RenderQueue绘制,无视SortingLayer、OrderInLayer的排序
5、 MeshRenderer 和SpriteRenderer 都是继承于 Renderer 的组件
它们的 sorting 和 orderinlayer 都是暴露出来的属性 可以在属性视图修改
模型蒙皮 skinned mesh render 虽然也继承了 Renderer 但在属性视图没有出现该属性 一般只能更改蒙皮的shader RenderQueue 调整默认sorting layer 和 Orderinlayer下 和其他物体的层级
所以一般设置材质的renderQueue或直接在shader中设置。
在ShaderLab中,有4个提前定义好的render queue,你可以设置更多的在他们之间的值:
Background :表示渲染在任何物体之前
Geometry(default):渲染大多数几何物体所用的render queue
AlphaTest:用于alpha测试
Transparent:用于渲染半透明物体
Overlay:渲染所有物体之上