本经验介绍了在Unity游戏引擎中,游戏脚本的初始化顺序在不同情况下如何,以及如何调整和调整带来的影响。
工具/原料
Unity
方法/步骤
1、首先,在Unity游戏引擎中,脚本的初始化顺序有时候是一个让人关心的问题。比如图种情况,在Start初始化时,依赖于另外一个应当初始化过的脚本。现在我们来探究这一问题。
2、首先我们新建了四个脚本,分别是TestScript01/02/03/04,脚本中的代码如下图。
3、我们在场景中建立四个对象,分别给他们添加脚本1/2/3/4.运行结果如图。我们发现的是,所有的Awake都明显早于Start被执行。看时间明显是两批。
4、然后我们把四个脚本都添加到Cube一个物体上,去除其它物体上的脚本。执行结果毫无变化。
5、现在我们给Cube和Sphere都添加1/2/3/4四个脚本。添加显示游戏物体的代码。执行结果如图。图中说明,在没有指定顺序时,总是先把一个游戏物体上的所有脚本初始化完成,然后再到另一个游戏物体上。
6、我们龅歧仲半打开Edit->ProjectSettings->ScriptExecutionOrder,然后点击加号把四个脚本拎枋辏话都添加进来。然后可以通过上下拖动的方式,或者手动修改右边数值的方式改变他们的先后次序。
7、单击Apply按钮。再次运行结果如图。这说明螅岔出礤在强制脚本的执行顺序以后,Unity不再按照一个游戏物体一个游戏物体的顺序了,而是先初始化不同物体上所有的脚本1,再初始化所有的脚本2缕计瓤账...这样,一些脚本初始化的相互依赖关系就可以得到较好的解决。