用户工具

站点工具


容量控制

容量控制

目标

第一个包体容量大小在100M以下,之后可以采用AssetBundle的模式去下载

目前预估

by Chenxinhui 2016/10/24

模块容量(M)备注— 沈默 2016/12/28 11:56
Unity库+程序代码20不可砍
其他库5优化空间不可控
app图标、xml等基础资源2优化空间不可控
音乐音效6必须压住
主角模型+贴图+动画+套装9需要大幅压缩
怪物模型+贴图+动画9.3需要大幅压缩
场景+场景特效+场景物件35需要大幅压缩
特效10需要大幅压缩
UI18需要压缩,而且预估偏小了
技能Icon(2048的贴图256个图标)2.7基本合理
装备道具Icon,大小同上2.7基本合理
buff图标+头像,大小同上2.7可压缩
怪物图片(2048的贴图,一张36个)5.4可压缩
总量127.8

波利参考

by Shenmo 2016/10/23

Android自身包体2.5
Unity库文件14.5
微信登陆和支付3.9
Unity基础资源3.8
Atlas(ICON)6.7
BGM8.8
SE0.5
ModelRole(角色怪物模型)21.2
动画3.5
技能特效2.4
其他特效0.4
UI面板(73个)19.0
场景0.9
其他模型(换装/武器)1.8
文本0.5
总量90.4

容量分析方法

LOG分析

目测比较有效

* 打包APK

* 在 C:\Users\USERNAME\AppData\Local\Unity\Editor 中找到 Editor.log

分析里面的打包记录,可以分析进入打包的所有资源的压缩前尺寸

注意压缩前尺寸不代表最终进入APK的尺寸, 压缩前大不代表最终也很大,但是压缩前小最终进入APK的一定小

分析报告

沈默 2016/12/28 12:22

各部分资源占比

资源容量mb百分比
Textures122.1 mb 60.9%
Meshes6.5 mb 3.3%
Animations6.7 mb 3.3%
Sounds8.0 mb 4.0%
Shaders748.8 kb 0.4%
Other Assets17.8 mb 8.9%
Levels21.2 mb 10.6%
Scripts2.8 mb 1.4%
Included DLLs5.1 mb 2.5%
File headers9.5 mb 4.7%
Complete size200.4 mb 100.0%

各目录未压缩数据容量 此部分人肉用excel分析Log

目录容量kb
Assets/Animations31.2
Assets/Audio8184.2
Assets/Effects39360.9
Assets/Font8842.1
Assets/Models/Characters19725.8
Assets/Models/Stage 包含Prop,TestP20849.1
Assets/Plugins21548.6
Assets/Prefabs10185.7
Assets/Resources/Databases1640.1
Assets/Scenes1955.7
Assets/Scripts75.1
Assets/Shaders284.7
Assets/UINew/Animators 以及Animation109.2
Assets/UINew/Script 包含代码及Prefabs2743.5
Assets/UINew/Texture/Resources/ ICON类5916.4
Assets/UINew/Texture/18195.4

Plugins删除后ColorfulFx提升13M

官方分析插件

优化手段

贴图压缩分析

总体结论:尽量用2的幂次图片,可使用16位色图片,最极端情况使用PVRTC格式压缩(部分Android可能不能支持)

参考文档http://blog.csdn.net/yupu56/article/details/47132301

图片压缩比例分析

Iphone:

1.空项目—-空间占用量42.3MB—-IPA大小10MB

2.10张1200*520无压缩Texure单张图占用量2.8MB—-空间占用量70.2MB—-IPA大小22.9MB

3.10张1200*520压缩成1024*1024PVRTC4单张图占用量0.5MB—-空间占用量47.3MB—-IPA大小13.2MB

4. 10张1024*1024无压缩Texture单张图占用量4MB—-空间占用量82.3MB—-IPA大小14.6MB

5.10张1024*1024压缩为PVRTC4格式单张图占用量0.5MB—-空间占用量47.3MB—-IPA大小11.6MB

数据总结:

一、2的N次方大小的图片会得到引擎更大的支持,包括压缩比率,内存消耗,打包压缩大小,而且支持的力度非常大。

二、减小图片的占用大小和内存方式有:图片大小变化(Maxsize),色彩位数变化(16位,32位),压缩(PVRC)。

三、U3D对于图片的格式是自己生成的,而并不是你给他什么格式,他就用什么格式,一张1024*1024图在无压缩格式下,它会被U3D以无压缩文件形式存放,也就是说U3D里的Texture Preview里显示的占用大小**MB不只是内存占用大小,还是空间占用大小。

四、U3D的内部机制为自动生成图片类型来替换我们给的图片,在图片的压缩方式上需要进行谨慎的选择。

压缩格式在U3D的Component Reference里有介绍我就不再详细介绍,只介绍几个重点的:

1.RGBA32格式为无压缩最保真格式,但也是最浪费内存和空间的格式。Automatic Turecolor和它一个意思。

2.RGBA16格式为无压缩16位格式,比32位节省一半的空间和内存。Automatic 16bits和它一个意思。

3.RGBACompressed PVRTC 4bits格式为PVRTC图片格式,它相当于把图片更改了压缩方式新生成了一个图片来替换原来的我们给的图片格式(比如我们给的是PNG格式)。

官方手段

http://docs.unity3d.com/Manual/ReducingFilesize.html 官方手册)

1.替换jpg,使用psd,减少重复资源

2.剔除不必要的资源

3.打包时查看log纪录,由此判断需要减少的文件类型

4.优化,压缩图片,减少图片大小

5.优化,压缩网格和动画,减少文件大小

6.剔除system.dll和system.xml.dll ,尽量不要依赖他们,或用其他组件来代替。

AssetBundle下载

TODO

容量控制.txt · 最后更改: 2020/04/13 21:17 (外部编辑)