type
status
date
slug
summary
tags
category
icon
password
先上官方图:
这是官方的生命周期流程图。下面来介绍一下常用的的生命周期方法。
注意: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
函数相对应行为被禁用或处于非活动状态时,调用此函数。
- 作者:Rainvice
- 链接:https://rainvice.com/article/920e27ab-7cf2-4e2a-b8b4-6eb066360aaa
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。