Unity——渲染层级关系


在这里插入图片描述
渲染主要是针对Game窗口下显示的内容,类似于画板,先画一层后画一层,后画的可以把之前的一层给覆盖掉。于是unity有了渲染关系层级关系。

Camera层级

因为Game窗口是摄像机Camera的映射画面,所以Camera是高层的渲染结果。
Camera的Depth

比如:我只添加了两个摄像机,一个是场景自带的Main Camera和我又添加的Camera,我先把Camera禁用
在这里插入图片描述
这是Main Camera映射出来的Game场景,能够把我设置的场景完美的显示出来,此时的Main Camera的Depth是-1。
在这里插入图片描述
把添加的Camera启用后,Game窗口中没有任何物体,而camera的Depth层数是0,比Main Camera高,所以把原来的Main Camera的画面给覆盖掉了,导致没有画面。

在同一Camera下,Sorting Layer

前面的Camera适用于3D,2D场景,前面用的是3D项目做得实验,2D也一样,后面的几个适用于2D场景。因为这是关于图片的渲染,在3D中也有关于图片的运用,但主要学习2D中的渲染。(自认为的,可根据自己实际情况了解
在这里插入图片描述
这是新建的2D场景,所有物体都在Main Camera下面(同一摄像机的情况)
此时所有的物体在Sorting Layer相同的情况下(全部都是Default),渲染层级关系是根据你的Hierarchy面板里面物体的顺序来比较的,比如:house是最后添加的,所以它的渲染层级最高,当它在其他物体 之前,都会把它覆盖掉,只显示house自己
在这里插入图片描述
这里就把后面的crate给覆盖掉了
渲染层级改变就要改变两者的Sorting Layer了
在这里插入图片描述
house的没有发生改变,改变了crate的Sorting Layer,这个Sorting Layer可以自己进行添加层级命名
在这里插入图片描述
此时的渲染关系就按照Sorting Layer的顺序面板进行渲染,先渲染Default层,再渲染backGround层,也就是说backGround层把前面的Default覆盖掉了
在这里插入图片描述
于是这次不是house覆盖crate,而是变成crate覆盖house

Order in Layer层级

该层级主要是针对不想改变Sorting Layer层级同时达到自己想渲染先后的问题
在这里插入图片描述
再次把crate的Sorting Layer层级改成和house层级一样,house覆盖掉crate
但是这次改变一下crate的Order in Layer层级
在这里插入图片描述
让crate的Order in Layer层级变成1,使得crate的渲染层级高于house
所以就变成:
在这里插入图片描述
crate覆盖住house

Layer层级

在这里插入图片描述
这里也是层级改变渲染关系,但是主要类似于场景物体的分类顺序
在这里插入图片描述

此时我让crate的Sorting Layer和Order in Layer跟house的一样,只改变crate的Layer变成Ground(Layer中也是原来只有5个,我的Ground是自己添加的,和上面的那个Sorting Layer添加方式一样)
在这里插入图片描述
但是并没有像自己预期的那样以为Ground的渲染层级大于Default使得覆盖house。所以Layer通常用来分类的,脚本中用到的Layer层级需要添加进行检测碰撞等等。

小结

搭建2D场景通常改变Sorting Layer和Order in Layer即可,在自己写脚本的或者一些情况下给物体分类加一些特有的Layer层级。

猜你喜欢

转载自blog.csdn.net/m0_48554728/article/details/112701771
今日推荐