2.1 Audio导入设置及优化
2.1.1 借助Asset Checker对项目资源进行检查
- 首先下载AssetChecker工具包 链接
- 解压后放入合适位置
- 打开cmd,cd进入解压后位置
- cd换盘符操作如下:
cd /D D:
- 进入位置为有assetcheck.exe的那一层
- 生成配置文件
assetcheck.exe generate-config
- 对项目进行资源进行检查
assetcheck.exe --project="D:\Users\zzz\unityObjects\Unity2022_SUNTAIL_Stylized_Fantasy_Village_Optimization-main" --projectId="a8805c8f-87fc-48ff-bbbc-03d5122ac391"
-
–project 指向工程的根目录,例如:“D:\Users\zzz\unityObjects\Unity2022_SUNTAIL_Stylized_Fantasy_Village_Optimization-main”
-
–projectId 指向在UPR中申请的测试应用的id
-
此处遇到一个大坑,问题描述如下:初次检查时报错,报错内内容如下
ImportError: DLL load failed while importing _ufuncs 页面文件太小,无法完成操作
- 经过查询发现是D盘没有设置最小虚拟页面导致的,设置方式如下:
最后在UPR的项目资源检查页面就可以看到unity对资源的修改建议。
2.1.2 报告解读
开启Force To Mono
建议对左右两声道完全相同的音乐开启此选项,可以强制转换为单声道,从而降低内存使用和空间占用。
一般而言左右两声道是相同的,所以在导入Audio时都 建议开启。
压缩格式
- 尽可能使用wav格式的文件作为原始文件,然后在unity中选择Vorbis进行压缩(默认针对移动平台;
- 如果音效不需要循环,可以使用mp3格式;
- 对于简短常用的音效,可以使用ADPCM,虽然压缩比不是最好的但是在播放过程中解码速度很快;
采样率
48000Hz对移动平台只能徒增功耗,建议使用22050Hz即可;
导入模式
根据不同的音频类型,选择不同的导入格式:
- 对于压缩后大小小于200KB的音效,一般建议使用Decompress On Load;
- 若压缩后大于200KB,则建议使用Compress in Memory;
- 如果是背景音乐或者较长较大的音乐,建议使用流式加载,避免卡顿的发生
另外
在游戏设置静音时,在音量设置为0的同时应当将音频销毁,将其从内存中完全卸载;
一般来说音频不会是游戏的性能瓶颈所在,但是较好的优化可以减少内存及包的大小。
优化前后对比:
优化后:
优化前:
优化结果
经过测试发现并不是一味地开启streaming就能减少内存占用,应当视情况而定。APK安装包整体缩减14MB:
链接:教程