unity引擎中游戏物体的生命周期
游戏生命周期
执行顺序 |
部分函数名称 |
调用 |
注意 |
1 |
Awake |
游戏物体实例化后并处于激活状态时调用,即使脚本组件没有激活也会调用,且总是在Start()之前调用 |
只调用一次 |
2 |
OnEnable |
游戏物体与脚本组件激活时调用 |
会反复触发 |
3 |
Reset |
重置默认值 |
|
4 |
Start |
游戏物体与脚本组件处于激活状态,在Update()前调用 |
只调用一次,当物体关闭激活状态,再打开时不会反复触发 |
5 |
FixedUpdate |
根据设定的帧率运行 |
帧率固定,主要用于刚体运算,存在平衡机制去约束 |
6 |
Update |
每帧调用一次 |
帧率不固定,与硬件性能以及逻辑复杂度相关 |
7 |
LateUpdate |
每帧调用一次,在Update()后调用 |
|
8 |
OnDrawGizmos |
绘制可被点选的gizmos |
|
9 |
OnGUI |
渲染和处理GUI事件时调用 |
|
10 |
OnDisable |
游戏物体或脚本组件关闭激活时调用 |
会反复触发 |
11 |
OnDestroy |
当游戏物体销毁时调用 |
|
- FixedUpdate运行帧率由:Edit-Project Settings-Time-Fixed Timestep的值决定。 注:每秒运行帧率相等不代表运行时间相等。可通过Time.realtimeSinceStartup测试出来每次FixedUpdate()调用时间间隔是不一样的。
- 为保证FixedUpate的固定帧率,通过设置Edit-Project Settings-Time Maximum Allowed Timestep来实现平衡机制,限定每次FixedUpdate()运行的最长时间。实现效果与性能的平衡。
原文地址:https://www.cnblogs.com/ChaoJieLiu/p/11876254.html