====== 容量控制====== =====目标===== 第一个包体容量大小在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|需要大幅压缩| |UI|18|需要压缩,而且预估偏小了| |技能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| |BGM|8.8| |SE|0.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 分析里面的打包记录,可以分析进入打包的所有资源的压缩前尺寸 {{:pasted:20161228-122242.png?300}} ''注意压缩前尺寸不代表最终进入APK的尺寸, 压缩前大不代表最终也很大,但是压缩前小最终进入APK的一定小'' === 分析报告 === --- //[[shenmo@riceman.com.cn|沈默]] 2016/12/28 12:22// **各部分资源占比** ^资源^容量mb^百分比^ |Textures|122.1 mb| 60.9% | |Meshes|6.5 mb| 3.3% | |Animations|6.7 mb| 3.3% | |Sounds|8.0 mb| 4.0% | |Shaders|748.8 kb| 0.4% | |Other Assets|17.8 mb| 8.9% | |Levels|21.2 mb| 10.6% | |Scripts|2.8 mb| 1.4% | |Included DLLs|5.1 mb| 2.5% | |File headers|9.5 mb| 4.7% | |Complete size|200.4 mb| 100.0% | **各目录未压缩数据容量** 此部分人肉用excel分析Log ^目录^容量kb^ |Assets/Animations|31.2| |Assets/Audio|8184.2| |Assets/Effects|39360.9| |Assets/Font|8842.1| |Assets/Models/Characters|19725.8| |Assets/Models/Stage 包含Prop,TestP|20849.1| |Assets/Plugins|21548.6| |Assets/Prefabs|10185.7| |Assets/Resources/Databases|1640.1| |Assets/Scenes|1955.7| |Assets/Scripts|75.1| |Assets/Shaders|284.7| |Assets/UINew/Animators 以及Animation|109.2| |Assets/UINew/Script 包含代码及Prefabs|2743.5| |Assets/UINew/Texture/Resources/ ICON类|5916.4| |Assets/UINew/Texture/|18195.4| //Plugins删除后ColorfulFx提升13M// ==== 官方分析插件 ===== //还未尝试// [[https://www.assetstore.unity3d.com/en/#!/content/3224]] [[https://www.assetstore.unity3d.com/en/#!/content/10772]] ===== 优化手段 ===== ====贴图压缩分析==== ''总体结论:尽量用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//