unity设置包最小

 unity 裸包apk 7.69m +NGUI +反编译=7.93M 

打包时的引用库,改一改build设置即可。


对于一个新项目来说不会有太大问题,但是如果是已经存在的项目,可能改变会导致原来所需要的库的缺失(虽说一般来说这种可能性不大),


因此有可能无法做到最优。


当使用Unity开发时,默认的Mono包含库可以说大部分用不上,在Player SettingEdit->ProjectSetting->Player或者Shift+Ctrl(Command)+B里的Player Setting按钮)


面板里,将最下方的Optimization栏目中“Api Compatibility Level”选为.NET 2.0 Subset,表示你只会使用到部分的.NET 2.0Subset,不需要Unity将全部.NETApi包含进去。接下来的“Stripping Level”表示从build的库中剥离的力度,每一个剥离选项都将从打包好的库中去掉一部分内容。你需要保证你的代码没有用到这部分被剥离的功能,


选为“Use micro mscorlib”的话将使用最小的库(一般来说也没啥问题,不行的话可以试试之前的两个)。库剥离可以极大地降低打包后的程序的尺寸以及程序代码的内存占用,唯一的缺点是这个功能只支持Pro版的Unity


这部分优化的力度需要根据代码所用到的.NET的功能来进行调整,有可能不能使用Subset或者最大的剥离力度。


如果超出了限度,很可能会在需要该功能时因为找不到相应的库而crash掉(iOS的话很可能在Xcode编译时就报错了)。


比较好地解决方案是仍然用最强的剥离,并辅以较小的第三方的类库来完成所需功能。


一个最常见问题是最大剥离时Sysytem.Xml是不被Subsetmicro支持的,如果只是为了xml,完全可以导入一个轻量级的xml库来解决依赖(Unity官方推荐这个)。


关于每个设定对应支持的库的详细列表,可以在这里找到。关于每个剥离级别到底做了什么,Unity的文档也有说明。


实际上,在游戏开发中绝大多数被剥离的功能使用不上的,因此不管如何,库剥离的优化方法都值得一试。




原文链接:http://blog.csdn.net/lircstar_1/article/details/8847664


你可能感兴趣的:(Unity项目经验总结)