话不多说直接开始。
今天来介绍一下Unity中控制脚本执行顺序的神器 —— Script Execution Order。
我们知道在同一个脚本中,Unity会按顺序执行Awake、OnEnable、Start这些方法,但不同脚本之间的Awake执行顺序则不太好控制了。这个时候我们就可以使用Script Execution Order来控制不同脚本之间的先后执行顺序。举个例子,我们有Script1和Script2两个脚本,并且我们希望让Script1的Awake方法始终在Script2的Awake方法之前执行。
打开ProjectSetting界面选择Script Execution Order页,在这里我们可以看到所有控制执行顺序的脚本,还有一个Default Time的时间戳。通过点击"+"号我们可以添加新的需要控制的脚本。
将Script1添加进列表之后,可以通过拖动控制脚本的执行顺序。将Script1拖动至Default Time上方可以让Script1在默认时间之前执行。拖动完成之后按Apply按钮完成设置。
Script Execution Order只控制脚本的先后执行顺序,函数依然会根据Awake、OnEnable、Start的顺序执行,即执行完所有脚本的Awake方法后在执行所有脚本的OnEnable方法以此类推。
关于Script Execution Order的介绍就先到这里,想要了解更多详细信息的小伙伴可以查询官方文档
https://docs.unity3d.com/2018.3/Documentation/Manual/class-MonoManager.html