Unity为什么推荐在FixedUpdate处理物理模拟?
很多初学者一开始分不清 Update() 和 FixedUpdate(),结果出现物理异常、帧率不稳或角色漂浮的问题。下面我详细讲讲——Unity 为什么推荐在 FixedUpdate() 中处理物理模拟。
一、Unity 的时间机制
Unity 的主循环(简化版)大致如下:
每帧:├─ 处理输入 (Input)├─ Update() ← 与屏幕刷新同步(帧率相关)├─ 多次 FixedUpdate() ← 与固定物理步长同步(与帧率无关)├─ 物理模拟 (Physics step)├─ LateUpdate()├─ 渲染提交
关键区别:
| 方法 | 调用频率 | 是否依赖帧率 | 主要用途 |
|---|---|---|---|
Update() | 每帧调用一次 | ✅ 依赖帧率(可能 30FPS、120FPS) | 逻辑、输入、UI 更新 |
FixedUpdate() | 每固定时间间隔调用 | ❌ 独立于帧率(默认 0. |
