Unity - 碰撞理解



Unity 中的碰撞与实际精灵本身是分离的,作为单独的组件附加,并独立计算。现在让我们了解其背后的原因。

所有游戏中的内容都是游戏对象。即使构成关卡的单个瓦片本身也是游戏对象。

当我们将每个组件都视为游戏对象时,我们意识到一个场景中可能存在数千个游戏对象,它们以某种方式相互交互。您可以想象,如果 Unity 为每个游戏对象都添加碰撞,那么引擎为每个游戏对象计算碰撞将是不切实际的。

我们将继续添加一个简单的“墙壁”,我们的玩家角色可以与之碰撞。为此,创建另一个精灵并使用矩形工具将其放大。我们还将通过精灵渲染器组件中的颜色属性为其赋予红色。

Color Property

现在,转到检查器中的添加组件,然后输入“Box Collider 2D”。单击显示的第一个组件,一个新组件应该会出现。

Add Component

您将在游戏对象的周边看到一条亮绿色的线。这是碰撞边界。它定义了可碰撞对象的实际形状

对我们的可移动游戏对象也重复相同的操作。

当然,Unity 中的碰撞不仅限于简单的盒子。它们可以具有各种形状和大小,并且不一定是对象参数的复制品。

Box Shaped

它们也可以采用多边形形状。

polygonal shapes

开发人员和设计师在碰撞边界中使用近似形状以简化碰撞体并避免引擎进行不必要的计算并不少见。我们很快就会学习如何使用碰撞体创建不同的形状和大小。

现在我们已经设置了碰撞边界,点击播放并查看其运行效果。

Approximate Shapes

您会注意到我们的可移动对象的行为不正常。我们将在下一章讨论对象的行为。

广告