前言
在项目中,我们经常需要处理显示对象的层级关系或规划层级结构,那么Unity中主要有哪些主要的层级关系及他们的优先级是怎么样的呢?
Camera
首先是Camera,Camera的depth值越大的在上面,越小的在下面,比如场景有一个相机,UI层有一个相机,那么我们就可以将场景相机的Depth设置成0,UI相机的Depth设置成1。UI就会高于场景显示了。
Sorting Layers
如果Camera相同,那接下来就看Sorting Layers,Sorting Layers是通过Renderer的sortingLayerName属性设置的,那么这个Sorting Layers的名字又是在哪设置,以及名字之间的顺序是怎么定的呢?这个Soring Layers是在Edit->ProjectSettings->Tags&Layers中设置的,如图:这里设置了Default和Effect两个Layers,Effect的层级比Default的高。
可以通过代码设置render.sortingLayerName=”Effect”,如果在粒子系统中看,可以看到Render项的Sorting Layers下拉表单中会列出所有的Sorting Layers的名字
sortingOrder
如果Camera相同,SortingLayers相同的情况下呢?
那就要比较soring Order了,soringOrder也是Render的一个属性,这个order是设置一个数字,数字越大,越在上面显示。
Unity层级关系与优先级详解

本文总结了Unity中的层级关系及其优先级:Camera的depth决定显示顺序,Sorting Layers通过sortingLayerName设置,Sorting Order通过数字大小决定层级,而renderQueue则通过Material的属性决定。在遇到层级遮挡问题时,可以参考提供的万能层级调整脚本解决,但要注意避免增加drawCall。
最低0.47元/天 解锁文章
6980

被折叠的 条评论
为什么被折叠?



