二.脚本优化策略

由于编写脚本在我们的开发过程中占据着举足轻重的地位,所以学习一些优秀的编程实践经验会使我们获利颇丰。脚本编程是一个很宽泛的概念,所以在这一章我们会把所讲述的内容限定在适用于Unity的一些情况,问题均围绕着MonoBehaviours ,GameObjects和与其相关的函数功能。

我们将会在第八章“专横的内存管理”去具体介绍C#语言,.NET库和Mono框架之间才细微差别和彼此的优势。

在这一章中,我们会讲述如何在下面一些范围内去实施性能优化

  • 获取组件
  • 组件函数调用(Update(),Awake()等等)
  • 协程
  • GameObject和Transform的使用
  • 对象间的通信
  • 数学计算
  • 反序列化,例如场景和预设的加载

无论你是想解决面临着的疑难问题,或者想为以后的开发学习一些技巧,本章节内容将会介绍一系列的提升编程效率的方法。在每个案例中,我们会说明为何会发生如此的性能问题,并对此问题提出解决方案。

1.使用最快的函数获取组件

GetComponent()获取组件有很多与其类似功能的变种方法,每一种的性能消耗都不同。所以选择消耗最小的函数明智的选择。有三个可用的重载函数:GetComponent(string),GetComponent(), 和GetComponent(typeof(T))。随着Unity版本的更新迭代,这些函数多多少少都做了一些优化,所以这几个哪个是最优的需要根据Unity版本去选择。在所有的Unity 5版本以及最先发布的Unity2017版本,最优选择是GetComponent()。

让我们编写一些测试脚本俩证明这个结论:

上面代码中我们对GetComponent()的变种函数进行百万次调用。这样调用在项目中很少见,但是这样可以使性能的微小差异最大化。

results matching ""

    No results matching ""