事件功能的执行顺序

第一场景加载
当场景
调用这些功能开始”(场景中的每个对象一次)。
醒着:总是在任何“开始”功能之前以及在“ 预制
之后调用此函数。中的实例化。(如果GameObject在启动过程中处于非活动状态,则直到**它为止,才会调用Awake。)
OnEnable :(仅在对象处于活动状态时才调用):启用对象后立即调用此函数。当创建MonoBehaviour实例时,例如在加载关卡或GameObject
时,会发生这种情况中的实例化脚本组件。
OnLevelWasLoaded:执行此功能以通知游戏已加载新关卡。
请注意,对于添加到场景中的对象,所有 脚本
的Awake和OnEnable函数调用“开始”,“更新”等之前,将调用“ 内容”。自然,当在游戏过程中实例化对象时,不能强制执行此操作。
编辑
重置:首次将脚本附加到对象以及使用“ 重置”命令时,将调用“重置”以初始化脚本的属性。
第一帧更新之前
开始:如果启用了脚本实例,则在第一帧更新之前调用开始。
对于添加到场景中的对象,将在Update之前在所有脚本上调用Start函数,等等。自然,当在游戏过程中实例化对象时,不能强制执行此操作。
在帧之间
OnApplicationPause:在检测到暂停的帧结束时调用,实际上是在正常帧更新之间调用。在调用OnApplicationPause之后,将发出一帧额外的帧,以允许游戏显示指示暂停状态的图形。
更新顺序
当您跟踪游戏逻辑和互动,动画,照相机时,
位置等,您可以使用一些不同的事件。常见的模式是在Update函数中执行大多数任务,但是您还可以使用其他功能。
FixedUpdate: FixedUpdate通常比Update更频繁地被调用。如果帧速率低,则可以每帧多次调用它;如果帧速率高,则可以在帧之间根本不调用它。所有物理计算和更新都在FixedUpdate之后立即进行。在FixedUpdate中应用运动计算时,无需将值乘以Time.deltaTime。这是因为在可靠的计时器上调用了FixedUpdate,而与帧速率无关。
更新: 每帧调用一次更新。它是帧更新的主要功能。
LateUpdate: Update完成后,每帧调用一次LateUpdate。LateUpdate开始时,Update中执行的所有计算都将完成。LateUpdate的常见用法是后续的第三人称相机。如果使角色移动并在Update内部旋转,则可以在LateUpdate中执行所有摄像机移动和旋转计算。这将确保角色在摄像机跟踪其位置之前已完全移动。
动画更新循环
这些功能和Profiler
。Unity评估动画系统时,将调用标记。
OnStateMachineEnter:在状态机更新步骤中,当控制器的状态机进行流经Entry状态的转换时,在第一个更新帧上调用此回调。它不要求过渡到StateMachine子状态。
仅当动画图中存在控制器组件(例如AnimatorController或AnimatorOverrideController或AnimatorControllerPlayable)时,才发生此回调。
注意:将此回调添加到StateMachineBehaviour组件将禁用多线程状态机
评估。
OnStateMachineExit:在状态机更新步骤中,当控制器的状态机进行流经退出状态的转换时,将在最后一个更新帧上调用此回调。它不要求过渡到StateMachine子状态。
仅当动画图中存在控制器组件(例如AnimatorController或AnimatorOverrideController或AnimatorControllerPlayable)时,才发生此回调。
注意:将此回调添加到StateMachineBehaviour组件将禁用多线程状态机评估。
Fire Animation Events
:从上次更新时间到当前更新时间之间采样的所有剪辑中调用所有动画事件。
StateMachineBehaviour(OnStateEnter / OnStateUpdate / OnStateExit):一层最多可以具有3个活动状态:当前状态,中断状态和下一个状态。使用StateMachineBehaviour组件为每个活动状态调用此函数,该组件定义了OnStateEnter,OnStateUpdate或OnStateExit回调。
首先针对当前状态,随后的中断状态以及最后的下一个状态调用该函数。
仅当动画图中有控制器组件(例如AnimatorController或AnimatorOverrideController或AnimatorControllerPlayable)时,才发生此步骤。
OnAnimatorMove:每个更新帧,对于每个Animator组件
均被调用一次。以修改的“ 根运动

StateMachineBehaviour(OnStateMove):在每个活动状态下调用此状态,并使用StateMachineBehaviour定义此回调。
OnAnimatorIK:设置动画IK。启用IK传递的每个Animator Controller层都将调用一次。
仅当您使用人形装备时,此事件才会执行。
StateMachineBehaviour(OnStateIK):在每个**状态下使用StateMachineBehaviour组件调用此组件,该组件在启用IK传递的层上定义此回调。
WriteProperties:将所有其他动画属性从主线程写入场景。
事件功能的执行顺序