事件函数的执行顺序

事件函数的执行顺序

Unity 脚本中有许多按预设顺序以脚本身份运行的事件函数。其执行顺序如下:

加载第一个场景

启动场景时调用这些函数(为场景中的每个对象调用一次)。

Awake: 始终在调用任何 Start 函数之前和实例化预设之后调用此函数。(如果游戏对象 (GameObject) 在启动期间处于非活动状态,,则直到其处于活动状态时或调用添加至其本身的任何脚本中的函数时,再调用 Awake 函数。)OnEnable: (仅当对象 (Object) 处于活动状态时调用此函数):程序会在启用该对象后立即调用此函数。上述现象会在创建了实例化的 MonoBehaviour 后发生,例如加载了级别或对含脚本组件的游戏对象 (GameObject) 进行实例化后。第一帧更新之前Start: 只要启用脚本实例,即可在更新第一帧之前调用 Start 函数。插值帧OnApplicationPause: 程序检测到暂停时,会在帧的结尾处调用此函数,这在常规帧更新期间很有效。调用 OnApplicationPause后,程序将运行另一帧来显示提示暂停状态的图形。更新顺序

有几个不同的事件有助于追踪游戏逻辑与交互、动画、相机位置等内容。常用的方法是运行Update() 函数中的大部分任务,但也可使用其他函数。.

FixedUpdate: 通常,FixedUpdate() 的调用频率高于Update()。如果帧速率较低,则可在一帧中多次调用此函数,如果帧速率较高,则可能完全无法在帧间调用此函数。程序调用FixedUpdate() 后将立即执行所有物理计算和更新。在 FixedUpdate() 中应用移动计算时,无需将您的值与 Time.deltaTime 相乘。这是因为,程序是在可靠的计时器上调用FixedUpdate(),与帧速率无关。Update: 在每帧上调用一次 Update() 函数。它是用于帧更新的主要 workhorse 函数。LateUpdate: 完成 Update() 调用后,在每帧上调用LateUpdate()。Update() 中执行的所有计算都将在LateUpdate() 开始之前结束。LateUpdate() 的常规使用记录由第三人称相机跟踪。如果在Update() 中移动和旋转角色,则可在 LateUpdate() 中计算所有相机移动和旋转。这将确保在相机跟踪其位置之前完整移动该角色。渲染协同程序

正常的协同程序更新是在返回 Update 函数之后运行。协同程序是可自行停止运行 (yield),直到给定的 YieldInstruction 结束再继续运行的函数。协同程序 (Coroutines) 的不同用途:

对象 (Object) 被销毁时OnDestroy: 完成所有帧更新后,在当前对象的最后一帧上调用此函数(可能为响应 Object.Destroy 或在关闭场景时销毁此对象)。退出时

程序将在场景的所有活动对象上调用这些函数:

OnApplicationQuit: 在退出应用程序之前,程序会在所有游戏对象上调用此函数。在编辑器中,用户停止播放模式时,程序将调用此函数。在网页播放器中,此函数会在网页视图关闭时调用。OnDisable: 此函数会在行为被禁用或不活动时调用。综上所述,任何给定脚本的执行顺序为:调用所有 Awake 调用所有 Start 同时进行(朝向可变增量时间)提示协同程序在所有 Update 函数结束后运行。

摘抄美文4、承诺是一件美好的事情,但美好的东西往往不会变为现实。

事件函数的执行顺序

相关文章:

你感兴趣的文章:

标签云: