问题
- 我有多个相机,但是需要让它们以特定的顺序渲染和更新
原因
当您在Unity中创建了一个新的相机,它的Depth默认为0,如下方截图黄色高亮区域所示。
Depth决定了渲染顺序,Depth越小,它在渲染堆栈中越提前。
解决方案
如果您有不止一个相机,只需要以升序排列每个相机的Depth,例如:
相机A – Depth值为0 //第一个被渲染。
相机B - Depth值为1 //第二个被渲染。
相机C - Depth值为2 //最后被渲染
当使用OnRenderImage制作图像效果时,图像效果总会被直接应用在它附带的相机后。所以和以上情况相同,如果三个相机各自附带有单独的图像效果,渲染顺序应该如下所示:
相机A – Depth值为0 //第一个被渲染。
图像特效1
相机B – Depth值为1 //第二个被渲染。
图像特效2
相机C – Depth值为2 //最后被渲染。
图像特效3
更多信息
- 可以通过在代码中使用Camera.depth属性编辑Depth值。
- 如果您有两个具有相同Depth值的相机,它们会根据被添加到场景中的顺序进行渲染。但我们不建议设置两个相机相同的Depth,您应该始终保证对它们明确的指令。
- 本文适用于Unity 4.x和Unity 5.x之间的版本。
- 更多信息请查看下方链接:
https://docs.unity3d.com/Manual/class-Camera.html https://docs.unity3d.com/Manual/MultipleCameras.html