生命周期顺序
本课属于 Coddy Unity 学习旅程的“Unity 脚本基础”单元。第 73 课,共 85 课。
Unity 会按固定顺序调用脚本的方法,从对象出现的那一刻到它被销毁的那一刻:
Awake():对象加载或生成时调用一次。OnEnable():紧接着调用,此后每次对象显示时都会再次调用。Start():脚本的第一帧开始前调用一次。FixedUpdate():按物理时钟调用,默认每秒 50 次,因此每帧可能调用零次、一次或多次,并且总是在该帧的Update()之前调用。Update():每帧调用一次。LateUpdate():每帧调用一次,在所有Update()调用之后。OnDisable():每次对象隐藏时调用,并且在对象被销毁之前调用。OnDestroy():对象被销毁时调用一次。
只要对象处于活动状态,第 4 到第 6 步就会在每一帧重复。生成的对象也会经历相同的顺序:Instantiate 会在返回前调用副本的 Awake() 和 OnEnable(),而副本的 Start() 会在它的第一帧 Update() 之前调用。
这个顺序带来两个习惯。在 Awake() 中编写的代码会及时设置对象自身的字段,以便其他所有对象的 Start() 使用。物理相关代码则放在 FixedUpdate() 中,它的调用间隔始终为 0.02 秒,无论帧率快慢。
亲手试试
这节课没有代码挑战。
Unity 脚本基础中的所有课
自己练习: Unity 在线编辑器