因为项目中的程序都有自己的习惯,方法写法可以不一样,但是下面这些代码里面在开发过程中能不使用就不要用的。
Delegate委托,
Boxing 装箱,
Linq和正则表达式
Foreach 循环,unity 5.5版本以前会有问题
Param 可变参数,
Dictionary的TryGetValue,
String消耗从大到小(str1+str2 > str1+”a” > StringBuilder对象池 > ”a”+ “b”)
Update里面的New对象
系统方法尽量自己写(如math和GameObject.name等,根据自己的需求尽量简便)
不要总显示隐藏内容,而临时不用的可以移动到一个固定位置。
GetComponent到null值
这些都是会带来不同的GC消耗,C#有自己的GC策略,这个就不做介绍,咱们不好控制,有可能会存在内存泄漏。所以每个资源在加载到游戏的时候,通过字典或者引用计数或者峰值检测等策略来实现资源不会泄露,并且根据游戏自身的机制,决定这个资源不使用的时候是否卸载。
Unity在打一个空包就已经快20M包体了,而这些就是unity本身自带的库文件,少引用。在Player Setting(Edit->Project Setting->Player),将最下方的Optimization栏目中“Api Compatibility Level”选为.NET 2.0 Subset,下面还有“Stripping Level”参数意思是从代码库中剥离的力度,这样可以减小包体大小。当然一个成熟的项目最好就不要修改了。