Unity Rigidbody 简介
在 Unity 中,Rigidbody(刚体) 是一个组件,使游戏对象能够与物理引擎交互。它允许游戏对象响应重力、力、碰撞和其他物理效果,使运动和交互更加真实。
Rigidbody 的关键特性
特性 | 描述 |
---|---|
Mass(质量) | 控制对象的重量。较重的对象需要更大的力才能移动。 |
Drag(阻力) | 随时间减慢运动(类似空气阻力)。 |
Angular Drag(角阻力) | 随时间减慢旋转运动。 |
Use Gravity(使用重力) | 决定对象是否受重力影响。 |
Is Kinematic(运动学) | 如果选中,对象不受物理力影响,但仍可通过脚本移动。 |
Interpolate(插值) | 当对象移动快速或帧率较低时,平滑运动。 |
Collision Detection(碰撞检测) | 控制如何检测碰撞(离散、连续等)。 |
实践示例
第一步:创建两个 2D 精灵
- 地面:右键点击“Main Camera” → 2D Object → Sprites → Square,然后在 Inspector 中将其颜色更改为黄色。
- 球体:右键点击“Main Camera” → 2D Object → Sprites → Circle,然后在 Inspector 中将其颜色更改为绿色。

点击“播放”按钮,您会注意到球体保持静止——它尚未移动。
第二步:为球体添加 Rigidbody2D
在 Hierarchy 中选择球体对象,然后在 Inspector 中点击“添加组件”。搜索并添加 Rigidbody2D 组件。
现在,当您按下“播放”按钮时,球体将因重力而下落,但它不会在碰到地面时停止。

第三步:添加碰撞器以进行碰撞检测
- 地面:选择地面对象,点击“添加组件”,并添加 BoxCollider2D。
- 球体:选择球体对象,点击“添加组件”,并添加 CircleCollider2D。
现在按下“播放”按钮——球体应会下落并在碰到地面时停止,这要归功于碰撞器和 Rigidbody2D 的协同工作。
通过以上步骤,您已经成功地在 Unity 中使用 Rigidbody2D 实现了基本的物理交互。
❓ 为什么球体落到地面时不会弹跳?
默认情况下,Unity 的 Rigidbody2D 和 Collider2D 组件不会产生弹跳效果。弹跳(或反弹)取决于物体所使用的 Physics Material 2D(物理材质) 设置。
✅ 如果你想让球体弹跳,请按照以下步骤操作:
第一步:创建一个 Physics Material 2D
在 Project 面板中,右键点击 → Create(创建) → 2D → Physics Material 2D
将其命名为 BouncyMaterial
在 Inspector(检查器) 中设置以下属性:
- Friction(摩擦力):
0
- Bounciness(弹力系数):
1
(也可以尝试 0.8 到 1.0 之间的值)
第二步:将材质应用到球体的 Collider 上
- 选择 Ball(球体) 对象
- 找到其 CircleCollider2D 组件
- 将
BouncyMaterial
拖动到该组件的 Material 属性栏中

运行游戏
现在,当你点击“播放”按钮时,球体在接触地面时就会和现实中的小球落地一样会弹跳。