Unity下Animation资源压缩简析

最近几天在做包体大小的优化,当然这个优化首当其冲的就是对图片压缩格式的优化,网上有很多Unty图片压缩格式的介绍,我们使用的也是常规操作,因此这里就不再赘述了,我想给大家分享的是对Animation的优化。

首先通过压缩工具对动画进行压缩

Unity下Animation资源压缩简析_第1张图片Unity下Animation资源压缩简析_第2张图片

把压缩后的动画重命名放到AnimationCompress文件夹下

Unity下Animation资源压缩简析_第3张图片

对比压缩前与压缩后的文件大小

Unity下Animation资源压缩简析_第4张图片

对比两者的内容变化

1.小数部分只保留3个有效位

Unity下Animation资源压缩简析_第5张图片

2.genericBindings被置空

Unity下Animation资源压缩简析_第6张图片

3.m_EditorCurves、mEulerEditorCurves置空

Unity下Animation资源压缩简析_第7张图片

对比生成的Assetbundle的大小变化

Unity下Animation资源压缩简析_第8张图片

注意

到这里,我们已经发现压缩工具对动画的压缩已经是生效的了,确实可以减小动画资源导出的AB包的大小,但上面的压缩前后的动画资源的内容对比中我们发现,压缩后的文件对两部分内容做了优化,分别是小数点位数裁切、genericBindings、m_EditorCurves、m_EulerEditorCurves置空,下面我们就来继续分析到底哪些部分可以实际减小动画资源AB包的大小

实验一

仅置空genericBindings、m_EditorCurves、m_EulerEditorCurves,小数点位数不做裁切

Unity下Animation资源压缩简析_第9张图片

对比生成的Assetbundle的大小

Unity下Animation资源压缩简析_第10张图片

实验二

只做小数位的裁切,不对genericBindings、m_EditorCurves、m_EulerEditorCurves置空

Unity下Animation资源压缩简析_第11张图片

对比生成的Assetbundle的大小

Unity下Animation资源压缩简析_第12张图片

总结

通过以上的对比分析,可以得出以下的结论:只有通过float的裁切对Animation的压缩才是有效的,genericBindings、m_EditorCurves、m_EulerEditorCurves置空不会影响Animation产出的AB包的大小,说明Unity打AB包时会自动裁切genericBindings、m_EditorCurves、m_EulerEditorCurves标签内的对应内容

测试工程

https://github.com/happy253650035/TestAnimationCompress

你可能感兴趣的:(Unity)