Unity - 性能优化实战01 - UPR工具的使用和音频优化


UPR Asset Checker 介绍

  • 看下去,很简单
  • 用于本地资源检测,帮助开发者尽早发现资源文件中存在的问题
  • 支持所有版本的Unity项目
  • 不依赖Unity Editor,无需安装绿色运行
  • 检测速度极快,可在UPR中查阅检测结果
  • 支持命令行模式,可与CI/CD工具轻松集成,实现自动化检测
  • 规则库持续更新
  • 支持AssetBundle冗余检测
  • 支持静态代码分析

获取Asset Checker

  • 下载Unity资源检测工具
  • 下载到一个压缩包,解压缩即可
  • 命令行窗口访问到这个解压缩后的目录,然后使用assetcheck.exe -h查看帮助信息(爱看不看)
  • 生成配置文件(爱生不生)

assetcheck.exe generate-config


使用Asset Checker 检测Unity工程

输入命令:assetcheck.exe --project=<project_path> --projectId=<project_id>
project_path替换项目真实路径
project_id替换为UPR后台创建应用后获得的ProjectID
##检测结果


音乐音效优化

音乐音效一般不会成为性能瓶颈,但优化音乐音效可以减少对内存的使用与包体大小

1.0 音频文件类型
  • 一般情况下可使用未压缩的wav文件作为音频源文件,通过不同平台支持的压缩格式控制压缩比
  • MP3:是一种有损压缩数字音频格式,适用于较长的音效,适合移动平台
  • WAV:音质要强于MP3格式,资源大,无压缩音频导入,适用于较短的音效
  • OGG:压缩比高,适合人声和适用于较长的音效
  • AIFF:无压缩音频导入,适用于较短的音效

1.1 UPR资源检测建议

通过下图可以看到,工具检查了84个资源,对其中的75个提出了改进建议

  • 音频应该启用forceMono,以节省存储和内存
  • default 的短音效应使用DecompressOnLoad
  • default 的常规音效应使用CompressedInMemory
  • default 的音乐应该使用Streaming
  • 默认平台的音频剪辑格式不适用于安卓





1.2 启用Force to Mono

被建议的音频是双声道音频,且左右两声道的音乐完全相同,可以用勾选ForceToMono的方式强制将此音频修改为单声道,内容不丢失的情况下可以减少它的使用内存和大小。特别是在移动平台下几乎听不出任何区别。如果左右声道内容不同,开启ForceToMono会导致听到的声音错误


1.3 音频信息详情

如下图,分别显示的是音频原始资源大小 、资源压缩后的大小 、和整体压缩比


1.4 音乐加载类型
  • Decompress On Load:该选项一般对应音频压缩后大小<200kb的音效文件。音频文件在加载完毕后,会被全部解压到内存中,这种方式会占据大量的内存,然而在播放时由于音频之前已经被解压,所以其对CPU的开销很小。请注意在加载后解压缩如果是Vorbis编码,会使用它压缩时大约10倍的内存,如果是ADPCM编码大约使用3.5倍的内存,所以请不要降此选项用于大文件
  • Compressed In Memory:该选项一般对应音频压缩后大于200kb的音效文件。音频文件以压缩格式存放于内存中,一边播放一边进行解压。这种模式的内存开销会比前一种稍小,但是播放时的CPU开销会较之更大。
  • Streaming流加载:该选项一般对应背景音乐文件,或较大较长的音效文件。音频文件不会被加载到内存,只有即将播放的一小段才会被读取到内存中。这种模式的内存开销最低,但是CPU开销也最大,因为其伴随着大量的磁盘读写操作和解压缩,可以避免载入时卡顿
  • 此外,当游戏需要静音时,不要将音量设置为0,应该销毁音频audiosource组件把它从内存中完全卸载
  • 综上所述,UPR推荐我们不同大小文件要选择好正确的加载类型


1.5 Compression Format 压缩格式
  • PCM:完全不压缩格式,占据的硬盘和内存相对会较大,由于运行时不需要解压,所以它的CPU开销最小,所以非常适合使用在很短的音效上面
  • Vorbis/MP3:常见的压缩格式,主流平台全部支持的格式,压缩比较高,但是运行时的解压缩开销较大,对于音质的损耗更加严重,所以多了个Quality可以调节质量改变文件大小1-100。在iOS平台上一般设置为MP3,因为iOS支持MP3格式的硬解码。如果音乐不循环可以使用MP3格式。
  • ADPCM:一种古老的压缩格式,相对于PCM的压缩比为3.5:1,但是运行时的解压开销很小,对于音质有一定损耗。这个格式适用于需要大量使用的音效上面,比如脚步 爆破和子弹发射,所以适合简短常用的音效
  • 综上所述,URP建议我们在安卓平台修改为Vorbis/MP3格式,在IOS平台修改为MP3格式。音频压缩策略需要考虑不同压缩格式在不同平台下的特点,以及音乐音效文件在不同用途下使用不同的压缩格式


1.6 采样率
  • 通常在移动平台都会选择对音质影响最小的最低设置,一般移动平台音频采样率经验数据建议设置为22050Hz。如下图,可以看到该音频源文件的音频采样率是36046Hz,在移动平台上完全没有必要,只会徒增文件大小和内存占用。

  • 如果要修改默认的音频采样频率,可以通过Sample Rate Setting下拉菜单选择 Override Sample Rate,并修改采样频率为22050Hz。与上面的音频信息对比可以发现导入后的大小也会缩减,越低采样频率生产的音频文件会越小。

实际打包对比

  • 优化音频前

  • 优化音频后

  • 通过图直观看到,优化后内存的占用比之前要少了70兆 ,而Cpu的负载仅提高了3%。这是因为一部分音频loadtype改成了streaming,额外产生了一些cpu开销。与内存方面相比,这个优化是非常值得的。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

能不写代码么

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值