Unity文档——填充率,画布和输入

本文档介绍了Unity中处理填充率问题的策略,包括消除不可见UI、简化UI结构和禁用隐形摄像头输出。还讨论了UI Canvas的重建,如儿童订单、拆分画布和性能优化。此外,提到了Unity UI输入处理的注意事项,如移动设备上的错误鼠标输入检测和Raycast优化技巧,以提升UI性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

填充率,画布和输入

版本检查:2017.3

-

难度:高级

 

本章讨论构建Unity UI的更广泛问题。

修复填充率问题

可以采取两种措施来减轻GPU片段管道的压力:

  • 降低片段着色器的复杂性。有关详细信息,请参阅“UI着色器和低规格设备”部分。
  • 减少必须采样的像素数。

由于UI着色器通常是标准化的,因此最常见的问题是过度使用填充率过高。这通常是由于大量重叠的UI元素和/或具有占据屏幕的重要部分的多个UI元素。这两个问题都可能导致极高的透支度。

为了减少填充率过度使用并减少过度抽取,请考虑以下可能的补救措施。

消除不可见的UI

需要最少重新设计现有UI元素的方法是简单地禁用播放器不可见的元素。最常见的情况是打开具有不透明背景的全屏UI。在这种情况下,可以禁用放置在全屏UI下方的任何UI元素。

最简单的方法是禁用包含不可见UI元素的根GameObject或GameObjects。有关其他解决方案,请参阅“ 禁用画布”部分。

最后,通过将其alpha设置为0来确保没有隐藏UI元素,因为该元素仍将被发送到GPU并且可能需要宝贵的渲染时间。如果UI元素不需要Graphic组件,您只需删除它,光线投射仍然可以工作。

简化UI结构

为了减少重建和呈现UI所需的时间,保持UI对象的数量尽可能低是很重要的。尝试尽可能多地烘焙食物。例如,不要仅使用混合GameObject将色调更改为元素,而是通过材质属性来执行此操作。此外,不要创建像文件夹那样的游戏对象,除了组织场景之外没有其他目的。

禁用隐形摄像头输出

如果打开具有不透明背景的全屏UI,则世界空间相机仍将在UI后面呈现标准3D场景。渲染器不知道全屏Unity UI会遮挡整个3D场景。

因此,如果打开一个完全全屏的UI,禁用任何和所有模糊的世界空间相机将通过简单地消除渲染3D世界的无用工作来帮助减少GPU压力。

如果UI未覆盖整个3D场景,您可能希望将场景渲染到纹理一次并使用它而不是连续渲染它。您将无法在3D场景中看到动画内容,但这在大多数情况下都是可以接受的。

注意:如果将画布设置为“屏幕空间 - 叠加”,则无论场景中活动的摄像机数量如何,都将绘制它。

多数模糊的相机

许多“全屏”用户界面实际上并不掩盖整个3D世界,但却让世界的一小部分可见。在这些情况下,捕获渲染纹理中可见的世界部分可能更为理想。如果世界的可见部分在渲染纹理中“缓存”,则可以禁用实际的世界空间相机,并且可以在UI屏幕后面绘制缓存的渲染纹理以提供3D世界的冒名顶替版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值