1 关于渲染
通过shader是可以改变渲染顺序的,但是太麻烦。特别是当用来改变UI的顺序时。
2 相机
可以使用多个相机,相机的深度(depth属性)越小越先渲染。它们的渲染结果会叠加。
3 例子
3.1
现在canvas被卡在cube中间,一部分被cube挡住了。
3.2
让主相机不显示UI层。即如图所示,去掉Culling Mask中 UI前面的 √
。
3.3
复制主相机属性。
3.4
在主相机下新建一个相机,将主相机的属性粘贴过去。
3.5
设置新相机的Clear Flag 为 Depth only
将Culling Mask 属性只勾上 UI
设置Depth属性为1。
这里设置为1
的目前是为了让UI层在主相机后面渲染(主相机的深度是0)。
越是在后面渲染,越显示在屏幕前面。
3.6
保证其它物体不在UI层
保证Canvas在UI层。
3.7
这样,就可以实现UI显示在其它物体前面的效果。利用这个原理,可以任意调换物体的渲染次序。
是不是很棒呢?