Version: Unity 6.0 (6000.0)
语言 : 中文
2D 刚体
2D 刚体类型

2D 刚体简介

可以通过将 2D 刚体组件附加到游戏对象,使用物理系统对其进行控制。2D 刚体组件与标准的刚体组件具有相似的属性,但专为 2D 开发进行了优化。例如,附加了 2D 刚体组件的游戏对象仅能在 XY 平面上移动,并且仅能在与该平面垂直的轴上旋转。

2D 刚体工作原理

在 Unity 编辑器中,变换组件定义了游戏对象(及其子游戏对象)在场景中的位置、旋转和缩放。当修改该组件时,它会更新其他相关组件,从而影响这些组件的渲染位置或其他碰撞体的位置。Unity 的 2D 物理系统能够移动碰撞体并使它们相互交互,因此需要一种机制将碰撞体的移动反馈给变换组件。此移动以及与碰撞体的连接便是 2D 刚体组件的用途。2D 刚体组件会覆盖变换组件,并将其更新为 2D 刚体所定义的位置和/或旋转。

注意:您可以通过直接修改变换组件来覆盖 2D 刚体(因为 Unity 允许访问所有组件的属性)。但是,这会导致不可预测的移动,甚至可能出现游戏对象相互穿透的问题。

2D 碰撞体和 2D 刚体交互

添加到同一游戏对象或子游戏对象的任何 Collider 2D 组件都会隐式地附加到该 2D 刚体,使得 2D 碰撞体随 2D 刚体移动。连接后,严禁使用变换组件或任何碰撞体偏移来直接移动 2D 碰撞体;而应移动 2D 刚体。移动 2D 刚体将提供最佳性能并确保正确的碰撞检测。连接到同一 2D 刚体的多个 2D 碰撞体不会相互碰撞。这意味着可以创建一组碰撞体来有效充当单一复合碰撞体,使所有碰撞体都与 2D 刚体同步移动和旋转。

通过脚本 API 施加力,2D 刚体可以以物理上合理的方式移动精灵。当为精灵游戏对象附加了合适的碰撞体组件时,它将受到与其他移动游戏对象碰撞的影响。使用 Unity 的物理系统可以简化许多常见的游戏机制,并以最少的代码实现逼真的行为。

注意:虽然通常会说 2D 刚体相互碰撞,但实际上发生碰撞的是附加到每个刚体上的 Collider 2D。如果没有碰撞体,2D 刚体本身无法相互碰撞。

其他资源

Rigidbody2D

2D 刚体
2D 刚体类型