当 UI 覆盖屏幕时将相机剔除遮罩设置为 Nothing 好吗?

Does setting camera's culling mask to Nothing when UI covers the screen is good?

我有一个非常大且完整的场景,因此有很多绘制调用。

有时我在游戏中显示一段视频,它覆盖了整个屏幕。 当我使用 Unity 的分析器工具测试我的游戏时,我注意到相机仍然渲染所有内容(尽管启用和计算了遮挡剔除),并且它导致视频滞后。

我的问题是如何禁用摄像头?

当我禁用相机组件或相机的 GameObject 时,我在游戏视图中收到一条警告 ⚠,内容为 No camera is rendering to this display。我猜这不太好(如果我错了请纠正我)。

所以我想知道取消相机上的剔除遮罩(通过将其设置为 Nothing)是否会强制 unity 停止渲染场景。 还是它仍然在后台做一些工作? (就像 UI 元素一样,尽管它们是完全透明的,但仍然被渲染)。

提前致谢

I have a pretty large and full scene and therefore gets a lot of draw calls.

我建议在你的材质上激活"Instancing",它可以大大减少绘图调用。

当 UI 弹出窗口打开时,它可以帮助从活动相机中删除 "Default" 层(或大多数渲染器所在的任何层)。您可以使用图层蒙版轻松完成此操作。或者您可以将 Camera.main.farClippingPlane 设置为 1 或任何较小的数字。