今天我们来聊聊如何跟Unity学代码优化,准确地说,是通过学习Unity的IL2CPP技术的优化策略,应用到我们的日常逻辑开发中。 做过Unity开发的同学想必对IL2CPP都很清楚,简单地说,IL2CPP就是Unity用来替代mono的一种script backend。至于 ...
今天我们来聊聊如何跟Unity学代码优化,准确地说,是通过学习Unity的IL2CPP技术的优化策略,应用到我们的日常逻辑开发中。
做过Unity开发的同学想必对IL2CPP都很清楚,简单地说,IL2CPP就是Unity用来替代mono的一种script backend。至于说Unity为什么用IL2CPP替代mono,就是另外的话题了,本文就不细港了。
IL2CPP由两部分组成:
IL2CPP AOT compiler的工作原理就如字面意思,读取并Parse (虽然并不知道用Mono.Cecil算不算Parse)IL Assembly ,分析并优化,然后生成cpp代码。IL2CPP的实现也很简单,生成的C++代码基本跟IL一一对应,有兴趣的同学可以自己试一下写点C#,然后看看生成的C++代码。
IL2CPP正式release已经有一年多了,一开始人人质疑,现在大家已经基本接受。这种转变肯定不是一日促成的,主要还是靠Unity对IL2CPP的重视和持续跟进的优化。
这两个月,Unity官博发了一个IL2CPP优化三部曲,接下来我们就看看如何从其中学习代码优化思路。
首先是第一个优化例子:
1 public abstract class Animal { 2 public abstract get='_blank'>string Speak(); 3 } 4 5 public class Cow : Animal { 6 public override string Speak() { 7 return "Moo"; 8 } 9 }10 11 public class Pig : Animal {12 public override string Speak() {13 return "Oink";14 }15 }16 17 public class Farm: MonoBehaviour {18 void Start () {19 Animal[] animals = new Animal[] {new Cow(), new Pig()};20 foreach (var animal in animals)21 Debug.LogFormat("Some animal says '{0}'", animal.Speak());22 23 var cow = new Cow();24 Debug.LogFormat("The cow says '{0}'", cow.Speak());25 }26 }
原标题:跟Unity3D学代码优化
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。