首页/ 第 7 章 · 物理系统/ 第 91 课
LESSON 91 · 物理系统

刚体 Rigidbody 详解

刚体已掌握。下一课学碰撞体 Collider。

⏱ 约 15 分钟📊 难度:入门🗂 第 7 章 · 物理系统📍 第 91 / 300 课
课程进度
91 / 300

🎯本节学习目标

  • 理解刚体的作用
  • 掌握刚体核心属性
  • 学会添加与配置刚体

🚀课程导读

想让物体“像现实中一样下落、碰撞、受力”,给它加刚体(Rigidbody)。它是物理世界的“身份证”。

什么是刚体

物理世界的主宰。

  1. 刚体(Rigidbody)让对象参与 Unity 物理模拟:受重力、受力、与其他碰撞体交互。
  2. 【添加】选中对象 → Inspector → Add Component → 搜索 Rigidbody → 添加。
  3. 添加后播放,物体会受重力下落(若无地面会一直掉)。
  4. 【核心属性】
  5. Mass 质量:越大越“重”,影响受力后的加速度。
  6. Drag 线性阻尼:越大速度衰减越快(空气阻力感)。
  7. Angular Drag 角阻尼:旋转衰减。
  8. Use Gravity 使用重力:勾选则受重力。
  9. Is Kinematic 运动学:勾选后不受力/重力控制,只能由代码/动画移动,但仍参与碰撞(适合移动平台、被动画驱动的角色)。
  10. Interpolate 插值:消除抖动(第 109 课)。
  11. Constraints 约束:冻结某些轴的移动/旋转(第 97 课)。
💡
刚体 + 碰撞体 = 完整物理参与。只有刚体没有碰撞体,物体会“穿墙”。

刚体的移动方式

分清“推”与“搬”。

  1. 【方式1 施加力】rb.AddForce(Vector3.up * 10f):物理真实,受质量影响。
  2. 【方式2 改速度】rb.velocity = new Vector3(x, rb.velocity.y, z):直接控制速度(适合角色移动)。
  3. 【方式3 瞬移】rb.MovePosition(target):平滑移动,常用于移动平台/受控对象。
  4. 【方式4 直接改 Transform】rb.transform.position = ...:绕过物理(碰撞会不准确,慎用)。
  5. 【推荐】角色移动常用 velocity 或 AddForce;动态物体多用 AddForce;平台/电梯用 MovePosition 或 Kinematic。
  6. 【重要】物理操作放 FixedUpdate 里(第 72 课)。
  7. 【获取速度】rb.velocity 用于检测移动状态。
不要每帧直接改带刚体对象的 transform.position(会与物理冲突导致穿透/抖动);用 velocity 或 MovePosition。

常见错误与排查

错误:物体加了刚体却不动?
原因:Use Gravity 未勾选,或质量太大/力太小
解决:检查 Use Gravity;调大力或减小质量。

动手练习

课后小任务(做出来才算真的学会)

  • 给两个物体加不同 Mass,从高处下落对比
  • 体验 Is Kinematic 对下落的影响
  • 用 velocity 实现一个水平移动的刚体方块

本节小结

刚体已掌握。下一课学碰撞体 Collider。

完成打卡后,主站会实时更新你的学习进度 🎯

← 上一课综合练习:让方块动起来