Unity UI性能优化

本文介绍了如何在Unity中进行UI性能优化,包括控制图片内存、优化资源加载和减少渲染损耗。关键点包括:使用适当格式和大小的图片,优化图集,减少透明度使用,利用虚拟列表和对象池,以及关注渲染批次和CPU损耗。
摘要由CSDN通过智能技术生成


前言

最近对项目的UI性能优化做了一些整理


一、概念环节

  • 内存方面
  1. 控制基础美术资源的大小,一般全屏的图大小不要超过游戏的分辨率,最好为分辨率的一半。
  2. 不需要支持透明的图片使用Jpg格式(RGB),PNG图片Unity会默认转成RGBA16控制图集的大小是2的次幂(NPot),如512512,10241024等,因为Gpu只支持读取NPot类型的图片,非Npot的图片需要额外转换,如果向上取像素则会多占用内存。
  3. 提高图集的利用率,不要留太多空白。
  4. 可以使用九宫格拉伸来实现的大图最好使用九宫格。
  5. 提高资源的复用率,如几张只是颜色不同的图片可以使用一张灰色原图,使用时给顶点赋值颜色即可。
  6. UI资源不要使用Mipmap,因为用不上!
  • 加载方面
  1. 同一个UI面板的所需图片资源,最好放入同一图集,因为资源加载的最小单位就是一张图集,这样可以保证一个面板的创建只要加载一张图集。
  2. 不同的ui模块最好放入不同的AB包中,进入模块时只需加载一个Ab包。
  3. 不要直接引用其他Ab包的资源,会被多个模块使用的资源打在一个公共包中,游戏开始只加载公共包可以缩短游戏加载的时间
  • 渲染方面
  1. 不要堆叠太多的层级,会给深度测试带来压力
  2. 暂时不展示的UI组件要隐藏掉,而不是调整透明度,透明度为0的图片依然会加入渲染队列
  3. 对于在列表中展示的物体,要使用虚拟列表,当前不可见的子物体不去渲染
  4. 不要频繁的创建和删除物体,此类物体最好使用对象池
  5. 文本Text空间的倾斜,下划线等效果会大大增加文字的顶点数量(几倍),大量文字不要使用此效果
  6. 限制动画的节点数量,不要有太多的粒子效果

二、QA环节

1.怎么在Unity中查看图片所占内存的大小,怎么在Unity中修改图片资源的参数?

在Unity工程文件夹中选中要查看的图片,在检视面板右下角的预览中可以看到大小,上面是可修改的参数
在这里插入图片描述

2.怎么在Unity中查看UI渲染损耗?

Game界面点击Stats,主要关注Batches和Cpu损耗,数量越大性能损耗越大,想了解具体损耗原因,可在Scene界面选择ShadingMode中选择OverDraw模式,颜色越深地方说明重叠次数越多,渲染压力越大。再此有很多模式可选,如查看顶点数量之类就不一一赘述了。
在这里插入图片描述
在这里插入图片描述


总结

个人水平有限,有什么描述错误的地方欢迎指正,缺少的部分也欢迎各位大神在评论区补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值