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()运行的最长时间。实现效果与性能的平衡。