减小包大小不仅可以使缩短用户下载时间,还可以节省流量,同时AppStore对包大小也有限制。
排查Resources目录
Resources目录中的所有资源,不管有没有被引用,都会被打进最终的包中。所以是重点优化目录。
压缩贴图
贴图是最占资空间的,非透明贴图比透明贴图更节省空间。除此之外,贴图的文件格式是不会影响最终包大小的,因为无论哪种图片格式,最终都会被Unity转成平台相关的贴图。所以把项目中的psd图片转成png是没有必要的。
最有效的方法是在Unity中设置图片的压缩程度,以及最大尺寸,调整到再降低画质就会被严重影响为止。
压缩模型
模型文件通常也比较占资源,最方便的方法就是在Unity中设置其压缩程度。
需要注意的是,这里设置压缩,只能减少本地模型文件的大小,但其在内存中占的大小并不会减少。
压缩动画
AnimationClip也可以被压缩,而压缩后不仅本地文件变小,同时内存占用量也会减少。由于压缩减少了关键帧,所以可能会导致动作形变等问题。
音频格式
小而短的音效,使用wav存储;背景音乐等比较长的,使用mp3存储。
同时音效文件,可以通过调整Quality,来减少大小。
代码库文件
避免使用一些重型的库,比如System.xml。可以使用Mono.Xml代替。
使用.Net 2.0 Subset
Net 2.0 Subset比.Net 2.0精简了不少代码,打APK对比,可以减少0.9M。
运行时静态合拼
-
如果在Editor中进行勾选,则会在项目中生成一个较大的VBO,Runtime时通过该VBO来进行渲染,优点是有效减少了Draw Call,缺点是增大了发布游戏包的体积。
-
如果在Runtime通过脚本来进行Batching,则相当于把拼合的时间由Editor中搬到了Runtime,所以加载时间(一般在场景加载时执行Batching)会稍有增加,但游戏包的体积将相应减少。
https://docs.unity3d.com/560/Documentation/Manual/ReducingFilesize.html
网友评论