1.资源优化标准
Mesh
动态模型:面片数<3000
材质数<3
骨骼数<50
静态模型:顶点数<500
Audio
长时间音乐(背景音乐)压缩格式 mp3
短时间音乐(音效)非压缩格式 wav
http://blog.csdn.net/u012565990/article/details/51794486
Texture
贴图长款<1024
Shader
尽量减少复杂数学运算
减少discard操作
2.减少冗余资源和重复资源
A、Resources目录下的资源不管是否被引用,都会打包进安装包
不使用的资源不要放在Resources目录下
B、不同目录下的相同资源文件,如果都被引用,那么都会打包进资源包,造成冗余
保证同一个资源文件在项目中只存放在一个目录位置
3.资源检测与分析
https://www.uwa4d.com/#assetbundle
优化实践:
1.压缩纹理
首先看看Android和iOS分别支持哪些格式的压缩: Unity 优化翻译官方文档(二) ------ 平台特定覆盖的纹理压缩格式
从其中挑选了几个格式来选择性压缩(分有无Alpha):
Android | IOS |
RGB 16 bit | RGB 16 bit |
RGBA 16 bit | RGBA 16 bit |
RGB Compressed ETC2 4 bit | RGB Compressed PVRTC 2 bits(对于精度要求低的,比如花草) |
RGBA Compressed ETC2 8 bit | RGBA Compressed PVRTC 2 bits |
RGB Compressed ATC | |
RGBA Compressed ATC | RGBA Crunched ETC2 |
RGBA 32 bit | RGBA Compressed PVRTC 4 bits |
RGBA Crunched ETC2 | RGB Compressed PVRTC 4 bits |
RGB Compressed ASTC block | RGB Compressed ASTC block |
Android端优化实践 (优化完安装包少了10M,图片不多)
首先采用RGBA Compressed ETC2 8 bit / Max Size更改为1024进行全部图片压缩,然后查看有些图片比较大的进行另外几种格式的尝试,对于无透明通道采用RGB Compressed ETC2 4 bit进行压缩,当然,也要看看效果来决定
在优化过程中发现几个规律也分享下,带透明通道的大图采用RGBA Crunched ETC2会有惊喜哦,如果图上颜色特别多时采用RGBA Compressed ASTC block进行压缩,但是不带透明通道的纯色图采用了好几种方式压缩后效果也不是太好。至于普通图使用RGBA Compressed ETC2 8 bit压缩后的图感觉还是比较大时就用RGBA 16 bit基本能压缩一半左右
同时导入设置中注意以下几点 :
大致总结下:
UI界面图片压缩:
透明普通图 : RGBA Compressed ETC2 8 bit / RGBA 16
透明大图 : RGBA 16 / RGBA Crunched ETC2(帧动画大图) / RGBA Compressed ASTC block
高清不压缩图 : RGBA 32
不透明普通图 : RGB16 / RGB Compressed ETC2 4 bit
不透明大图 : RGB16 / RGB Compressed ASTC block / RGB Compressed ETC2 4 bit
不透明的图要仔细看压缩后的图片是否符合需求
模型:
不透明贴图 : RGB Crunched ETC / RGB Compressed ETC2 4 bit
IOS端优化实践:
UI界面图片压缩:
透明普通图 :RGBA Compressed PVRTC 4 bits / RGBA Crunched ETC2(IOS中意外的压缩很小)/ RGBA 16 (有的也压缩的很小)
透明大图 :RGBA Crunched ETC2(帧动画大图)/ RGBA Compressed ASTC block
高清不压缩图 : RGBA 32
不透明大图 :RGB Compressed ASTC block
模型不透明贴图:
不透明贴图 : RGB Crunched ETC / RGB Compressed PVRTC 4 bits
参考文章: