在之前的技术推送中,我们曾为大家深入分析了加载模块中的纹理、网格、Shader等资源。今天我们继续该系列,和大家分享在加载动画片段时需要注意的事项。 资源加载性能测试代码与之前几篇所提出的测试代码一样,我们对于AnimationClip资源的加载性能分析同样使用该测试代码。同时,我们将AnimationClip文件制作成一定大小的AssetBundle文件,并逐一通过以下代码在不同设备上进行加载,以期得到相应的资源加载性能比较。 测试环境 AnimationClip资源AnimationClip资源是项目运行时最常加载的资源之一,且其加载效率主要由其自身加载量决定,而决定AnimationClip资源加载量的主要因素则是它的压缩格式。目前,Unity引擎对导入的AnimationClip提供三种压缩格式,Off、Keyframe Reduction和Optimal。其中,Off表示不采用压缩处理;Keyframe Reduction表示使用关键帧进行处理,Optimal则表示Unity引擎会根据动画曲线的特点来自动选择一个最优的压缩方式,可能是关键帧压缩,也可能是Dense压缩。 注:关于AnimaitonClip曲线中具体压缩方法解释,请查看Unity官方Manual文档: 测试:不同压缩格式的AnimationClip资源加载效率测试 我们在三种不同档次的机型上加载这些AnimationClip资源,为降低偶然性,每台设备上重复进行十次加载操作并将取其平均值作为最终性能开销。具体测试结果如下表所示。 第1组测试 第2组测试 第3组测试 通过上述测试,我们可以得到以下结论:
优化建议对于资源的优化,我们的建议是防范大于救灾!具体可行的方法如下:
以上为AnimationClip资源在加载时的性能测试。关于加载模块的性能问题,我们会不断推出音频资源的加载性能分析、资源卸载性能分析、资源实例化性能分析、不同加载方式的性能分析等一系列技术文章,并对目前UWA所检测过项目的共性问题进行总结,以期让大家对项目的加载效率有更加深入的认知,并提升对加载模块的掌控能力。 |
|
来自: 勤奋不止 > 《游戏引擎unity》