关注

如何强制我的相机以某种顺序渲染?

问题

  • 我有多个相机,但是需要让它们以特定的顺序渲染和更新

原因

当您在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

 

这篇文章有帮助吗?
0 人中有 0 人觉得有帮助
还有其它问题?提交请求

0 评论

登录写评论。