Unity游戏项目里通常需要多个摄像机,最基本的是一个UI相机,一个3D相机。
渲染顺序依次为Camera Depth,Canvas Sorting Layer,Canvas Order in layer,这3级可以覆盖到绝大多数渲染顺序,其他还有RectTransform的Posz,Sharder里的Render Queue和深度测试等,
1Camera Depth
值越小,越优先渲染,会被后渲染的物体覆盖,摄像机会根据Depth从小到大的顺序,渲染各自Culling Mask的层。
Camera有个ClearFlags属性,选择DepthOnly可以只渲染采集到的画面,其他区域默认没有采集,不参与Depth的渲染顺序。所以3DCamera可以勾选这个,通过调整Depth来调整3D物体在UI中的渲染前后顺序。
2Sorting Layer
每个Canvas画布都有自己的Sorting Layer,在使用RenderTexture渲染3D对象的情况下,想要控制3D与UI的层级关系,需要不同的Canvas有不同的Sorting Layer值,且会根据从小到大的渲染顺序。
3Order in Layer
在同一Canvas下面,由Order in Layer进行渲染排序,顺序由小到大