使用脚本执行顺序设置来指定 Unity 调用不同MonoBehaviour 类事件函数的相对顺序。例如,您可以指定 Unity 应该在运行您的MoveForward
MonoBehaviour 脚本的事件函数之前,运行您的Rotation
MonoBehaviour 脚本的事件函数。
此顺序分别应用于每个事件函数类别,因此 Unity 会按指定顺序调用帧中需要调用的任何Awake 函数,然后按相同顺序调用任何处于活动状态的游戏对象Unity 场景中的基本对象,可以代表角色、道具、场景、摄像机、航路点等等。游戏对象的特性由附加在其上的组件来定义。 更多信息
参见 术语表的Update 函数。
您可以在项目设置检查器中调整脚本执行顺序。转到菜单:编辑 > 项目设置一系列广泛的设置,允许您配置物理、音频、网络、图形、输入以及项目中其他众多方面的行为。 更多信息
参见 术语表,然后选择脚本执行顺序类别。
注意:如果您将多个脚本类型分配给多个游戏对象,脚本执行顺序指定所有脚本一段代码,允许您创建自己的组件,触发游戏事件,随着时间的推移修改组件属性,并以您喜欢的任何方式响应用户输入。 更多信息
参见 术语表类型都将在所有其他类型脚本之前执行,而不管它们附加在哪个游戏对象上。
使用加号 (+) 按钮将脚本添加到设置检查器一个 Unity 窗口,用于显示有关当前选定游戏对象、资源或项目设置的信息,允许您检查和编辑值。 更多信息
参见 术语表窗口并选择类名。要删除脚本,请使用位于列表中每个项目右侧的减号 (-) 按钮。
要指定执行顺序,请将列表中的项目拖动到所需位置,或编辑列表中类的顺序编号。分配的编号表示相对顺序。Unity 从上到下执行列表(从顺序编号更负的脚本到顺序编号更正的脚本)。Unity 在默认时间槽中执行列表中没有的任何脚本,该槽在任何顺序编号为负的脚本之后、顺序编号为正的脚本之前执行。
顺序编号是任意的,不代表任何物理量。编辑器将这些值存储在脚本元数据文件中。您可以在顺序编号之间留出间隙,以帮助避免在向列表中添加或移动其他脚本时出现多余的文件更改。
当多个场景以累加方式加载时,配置的脚本执行顺序会一次针对一个场景完全应用。例如,如果配置的执行顺序为Script1
> Script2
> Script3
,则 Unity 会先更新第一个场景中所有Script1
的实例,然后更新第一个场景中所有Script2
的实例,最后更新第一个场景中所有Script3
的实例,然后运行下一个场景中的任何更新。
如果您更喜欢从代码中指定脚本执行顺序,而不是在编辑器中配置它,您可以通过将[DefaultExecutionOrder]
属性应用于您的 MonoBehaviour 派生类来实现。有关更多信息,请参阅脚本 API 中的DefaultExecutionOrder。
注意:脚本执行顺序设置窗口中指定的执行顺序不会影响标记有RuntimeInitializeOnLoadMethod 属性的函数的顺序,因为您无法指定运行时初始化的顺序。此外,脚本执行顺序不会影响OnDisable 和OnDestroy 函数。
有关 Unity 在帧中调用每个事件函数类别的时间的更多信息,请参阅事件函数的执行顺序。
MonoManager