关于unity一个场景中存在多个相机时Game视图的画面问题
1.首先查看几个相机的Depth值,在相机的ClearFlags,ViewportRect默认状态下,Game视图只会显示Depth值最高的相机的画面
2.当Depth值最高的相机的ClearFlags为Skybox或solidColor时,且ViewportRect默认状态下,Game视图只会显示Depth值最高的相机的画面
3.当Depth值最高的相机的ClearFlags为DepthOnly时,检查Depth值第二高的相机的ClearFlags值,若为Skybox或solidColor,则画面为这两个相机画面的混合效果,若Depth值第二高的相机的ClearFlags为DepthOnly,则查看Depth值第三高的相机的ClearFlags类推,其中Depth值越高的画面优先显示,效果为多个相机画面中Depth值高的画面会遮挡Depth值低的画面。
4.下面就是ClearFlags为Don‘t Clear时,Don't Clear 意味着相机在每一帧渲染时,不会清除上一帧残留在颜色缓冲区和深度缓冲区中的数据。简单理解其实就是先带入ClearFlags为DepthOnly时的逻辑,然后在最后混合展示时,由于相机不会清空上一帧残留的颜色与深度数据,所以Depth值越低的越优先显示,效果为多个相机画面中Depth值低的画面会遮挡Depth值高的画面,以及若物体在移动中,会出现拖尾的效果。
5.最后讲相机的ViewportRect,默认情况下一个相机的画面会铺满整个Game视图,但是调整ViewportRect值时,相机的画面就不一定会铺满整个Game视图,例如双人成行等游戏中,几位玩家的画面在一个Game视图中分区域显示的效果