生命周期
00 分钟
2023-9-21
2023-9-24
type
status
date
slug
summary
tags
category
icon
password
先上官方图:
notion image
这是官方的生命周期流程图。下面来介绍一下常用的的生命周期方法。
💡
注意:C#推荐将方法名称首字母大写,与其它语言不太一样

加载场景时:

  • Awake函数:不依附于 GameObject。对象创建时调用,类似于构造函数,当所在的对象被创建时Awake函数被调用,且只被调用一次。
  • OnEnable函数:依附于GameObject,当GameObject被激活时,函数被调用。如果有需求在函数被激活时执行某些代码,就可以写在此函数里面。

编辑时:

  • Reset() 函数:编辑时首次将脚本赋值给游戏对象时触发一次,只在编辑期间执行一次,或者在使用Reset命令时执行。

执行时:

  • Start函数:当游戏对象被创建出来后,在游戏的第一帧开始时之前执行一次此函数。
  • FixedUpdate函数:固定时间间隔执行,间隔时间可以设置。调用 FixedUpdate 的频度常常超过 Update。如果帧率很低,可以每帧调用该函数多次;如果帧率很高,可能在帧之间完全不调用该函数。在 FixedUpdate 之后将立即进行所有物理计算和更新。在 FixedUpdate 内应用运动计算时,无需将值乘以 Time.deltaTime。这是因为 FixedUpdate 的调用基于可靠的计时器(独立于帧率)。
  • Update函数:每帧调用一次 Update。这是用于帧更新的主要函数。
  • LateUpdate函数:每帧调用一次 LateUpdate(在 Update__ 完成后)。LateUpdate 开始时,在 Update 中执行的所有计算便已完成。LateUpdate 的常见用途是跟随第三人称摄像机。如果在 Update 内让角色移动和转向,可以在 LateUpdate 中执行所有摄像机移动和旋转计算。这样可以确保角色在摄像机跟踪其位置之前已完全移动。

暂停时:

  • OnApplicationPause函数:应用暂停时会调用触发,取消暂停后会从物理周期阶段中的 FixedUpdate 开始重新执行。

销毁时:

  • Destroy函数:对象存在的最后一帧完成所有帧更新之后,调用此函数(可能应 Object.Destroy 要求或在场景关闭时销毁该对象)。

退出时:

  • OnApplicationQuit函数:在退出应用程序之前在所有游戏对象上调用此函数。在编辑器中,用户停止播放模式时,调用函数。
  • OnDisable函数:OnEnable函数相对应行为被禁用或处于非活动状态时,调用此函数。
上一篇
Unity常用API
下一篇
十、函数指针与函数回调

评论
Loading...