Unity Canvas的三种渲染模式
1、Screen Space - Overlay模式
Overlay 模式下 UI 元素总是渲染在3D元素的上面。
2、Screen Space - Camera 模式
Canvas元素会自适应的充满屏幕空间,但不同之处是UI元素不一定永远覆盖在3D元素上方。
3、World Space模式
该模式下,UI元素和3D元素没有区别。
影响层级的因素
通常,Unity中影响到层级的因素有以下这些:
1、Sort Order:这个是最直接也最常用的渲染排序,数字越大的越后面渲染,即在画面的最上方。通常Layer都是Default层。
2、Camera的Depth,Depth小的先渲染。
3、Render Queue:自己测试下来优先级小于Order in Layer,在Order in Layer相同的时候,Render Queue越小,越先进入渲染管线。
记一次大坑
这次碰到了一个特效和UI的问题。
在Unity上给UI设置3Sort Order,特效设置2,一个3D物体设置为1,其顺序应该是3D物体在最下方,特效在中间,UI在最上方。
然而打包到移动设备上后,特效始终在UI上方。
最后经过穷举测试法,发现UI的Canvas上有一个名为Plane Distance(平面距离,即相机到UI的距离)的Property,其值过小导致了这个问题,拉大后问题解决。
尚不知道为什么,姑且先记下。