Unity3D性能优化 (五)——UI

一、DrawCall优化
①UI层级
这里写图片描述

这里写图片描述

这里写图片描述

三张图对比发现场景中UI的数目一样,布局有变化,导致了其DrawCall数目不一样。当出现重叠时,会影响空间拓扑关系,从而影响了Unity对DrawCall的优化。
所以UI布局时,同一深度的UI(Item)不要出现重叠。

这里写图片描述

这里写图片描述
在实际应用中如背包系统,上面两张图由于第一张的Image偏大,导致DrawCall的增加

②精灵打包
这里写图片描述

这里写图片描述
通过设置PackingTag,将同一类型的Icon设置为相同的PackingTag,系统就会把这些Icon打包在一起

③图集
这里写图片描述

这里写图片描述

图集是将小图拼在一张大图上,在Unity工程中再切割成单个精灵使用。
精灵打包和图集优化DrawCall的原理是相同的:
在界面中默认一张图片一个DrawCalls,同一张图片多次显示仍然为一个DrawCalls,因此将多张小图合在一起从而减少DrawCall.

二、网格重建
关于Graphics的重构:http://www.cnblogs.com/twjcnblog/p/5850648.html
为了避免网格重建带来的开销,可以对UI布局进行动静分离,将动态变化中的UI组件单独分配到一个Canvas中。

三、UI事件检测
UGUI中的事件检测是判断输入事件的位置与按钮的绘制位置是否重合,这样导致了进行事件检测时会对所有UI元素进行判断,可是对不进行响应事件的UI元素屏蔽掉其事件。
这里写图片描述
去除Raycast Target的√

四、OverDraw(过度绘制)
这里写图片描述

这里写图片描述
对于一些透明的边框背景图,其中间区域理论上是不必去绘制的,虽然设置成了透明,不被人们看见,但计算机还是进行了绘制,因此应该将这一部分性能消耗规避掉,传统的做法就是如上图去掉FillCenter的勾选。

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值