Unity - Understanding Collisions

Unity中的碰撞与实际的Sprite本身是分开的,作为单独的组件附加并且是自己计算的.现在让我们来了解一下这背后的原因.

游戏中的所有都是GameObject.甚至组成
级别的单个图块也是GameObjects.

当我们将每个组件都视为GameObject时,我们意识到可能有千元场景中的GameObjects,以某种方式相互交互.你可以想象,如果Unity为每一个GameObject添加了碰撞,那么引擎计算每一个GameTra碰撞是不切实际的.

我们将继续添加一个简单的"墙"我们的玩家角色可以碰撞.为此,请使用Rect工具创建另一个精灵并进行缩放.我们还将通过Sprite Renderer组件中的 Color 属性为其指定红色.

Color Property

现在,在检查器中转到添加组件,然后输入"Box Collider 2D".单击显示的第一个组件,并显示一个新组件.

添加组件

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

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

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

Box形状

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

polygonal shapes

在开发人员和设计人员的碰撞边界中使用近似形状来简化碰撞器并避免对引擎进行不必要的计算时,这种情况并不少见.我们将很快学会如何使用我们的碰撞器创建不同的形状和大小.

现在我们已经确定了碰撞边界,点击播放并查看它的实际效果.

近似形状

您会注意到我们的可移动物体表现不正常.我们将在随后的章节中讨论该对象的行为.