理解碰撞

17 Mar 2025 | 阅读 2 分钟

如你所知,你游戏中的一切都是 GameObject。 甚至组成你关卡的各个图块本身也是 GameObject。

当我们把每个组件都视为 GameObject 时,我们就会明白场景中可能有成千上万的 GameObject,以某种方式相互交互。 你可以想象,如果 Unity 为每个 GameObject 添加碰撞,那么引擎计算每个 GameObject 的碰撞是不切实际的。

在 Unity 中,碰撞与实际的 Sprite 本身是分离的,作为单独的组件附加,并单独计算。

碰撞器组件描述了对象用于物理碰撞的形状。 碰撞器将是不可见的,并且需要与 GameObject 的网格形状完全相同。

让我们添加一个简单的墙,我们的玩家可以撞到它。 首先,创建一个 sprite。 要做到这一点,在层次结构选项卡中右键单击你的场景,然后选择 2D 对象 -> Sprite。

Understanding Collisions

将新的 Sprite 重命名为 Player。

或者直接进入项目选项卡,右键单击 Assets 并选择 Create -> Sprites -> Square。

Understanding Collisions

将该正方形拖到场景中。

Understanding Collisions

现在转到 Inspector 选项卡中的 Add Component,搜索“Box Collider 2D”。

Understanding Collisions

你会在你的 Player GameObject 的周围看到一条明亮的绿色线。 这是碰撞边界。 它定义了可碰撞对象的实际形状。

Understanding Collisions

我们可以创建不同形状和大小的碰撞。 它们可以是矩形形状,甚至可以是多边形形状。