Unity自带了一套物体间的决定渲染顺序的参数,其中最重要的三个为:SortingOrder、SortingOrder、RenderQueue。
SortingLayer在Inspector面板中点击Tag -> AddTag -> SortingLayer,可以添加自定义的sortingLayer,默认的sortingLayer为Default, 自定义的layer可以在之前也可以在之后,SortingLayer的第一个将是默认的层级,会将所有的已经创建的物体的sortingLayer属性都自动设置为第一个。因此如果想要做层级划分,最好在游戏开始设计之时就开始划分好对应的层级,至少第一个层级需要想好,否则后期改起来是个大工程。
在讨论SortingLayer跟SortingOrder之前,需要知道RenderQueue。因为RenderQueue起到一个关键的作用。它处于shader层面,并且与具体的数值表示透明不透明等渲染队列顺序。如下图:
当RenderQueue填-1是使用shader自定义的值,否则使用手动填的值,具体位置在材质的inspector面板的最底下:
<