这次项目优化主要遇到的大的方面优化有几个,一个是UGUI内存优化,,这一块一定要选择ETC1压缩方式,可以大量的压缩内存消耗,在前期需要对UI做整体规划,尽量做到UI资源的通用和复用,将通用的贴图资源可以放一个文件夹,打成一个图集,做成依赖的assetbundle,然后根据每个功能窗口特效的贴图分不同的文件夹,打不同的图集。注意,只有unity5.3.8开始才真正支持etc1(alpha通道分离)。并且前题条件是必需要打图集。
另一个内存的大坑是声音文件,音源的处理,尽量去掉不要的部份,如果没有双轨要求,尽量用单轨,质量适度就行。然后在导入选项里,大文件尽量选择streaming方式,这种方式是直接读取文件来播放,放完就会释放,,不会占用太多内存。同时在优化过程中发现个问题,如果声音是直接挂在prefab上面的话,,并且以assetbundle方式加载的话,如果当加载完就直接unload的话,声音将播放不出来。
另一个内存的大坑是声音文件,音源的处理,尽量去掉不要的部份,如果没有双轨要求,尽量用单轨,质量适度就行。然后在导入选项里,大文件尽量选择streaming方式,这种方式是直接读取文件来播放,放完就会释放,,不会占用太多内存。同时在优化过程中发现个问题,如果声音是直接挂在prefab上面的话,,并且以assetbundle方式加载的话,如果当加载完就直接unload的话,声音将播放不出来。
通用贴图资源也尽量选择用ETC,如果带alpha通道的话,这个版本的解决办法是用脚本将贴图分成两个贴图,一个rgb,一个a,然后用带alhpa支持shader。达到压缩大小的效果。rgb可以直接选择ETC。但因为项目中用到很多特殊的shader,这一部份大多没有进行优化。(特别是特效部份,这块还要研究具体怎么做更高效又不占内存)