简述
Unity 中的碰撞与实际 Sprite 本身分离,作为单独的组件附加并自行计算。现在让我们了解一下这背后的原因。
Everything在你的游戏中是一个 GameObject。甚至构成关卡的各个图块本身也是游戏对象。
当我们将每个组件都视为一个 GameObject 时,我们意识到可能存在thousands场景中的游戏对象,以某种方式相互交互。您可以想象,如果 Unity 为每个游戏对象添加碰撞,引擎计算每个游戏对象的碰撞是不切实际的。
我们将继续添加一个简单的“墙”,我们的玩家角色可以与之碰撞。为此,请创建另一个精灵并使用矩形工具将其放大。我们还将通过ColorSprite Renderer 组件中的属性。
现在,去Add Component在 Inspector 中,输入“Box Collider 2D”。单击出现的第一个组件,应该会出现一个新组件。
您将在 GameObject 的周边看到一条亮绿色的线。这是collision boundary. 它定义了实际shape的可碰撞物体。
对我们的可移动游戏对象也重复相同的操作。
当然,Unity 中的碰撞不仅限于简单的盒子。它们可以有各种形状和大小,不一定是对象参数的复制品。
它们也可以呈现多边形。
开发人员和设计人员使用的情况并不少见approximate碰撞边界中的形状以简化它们的碰撞器并避免对引擎进行不必要的计算。我们将很快学习如何使用我们的对撞机创建不同的形状和大小。
现在我们已经有了碰撞边界,点击播放并查看它的实际效果。
您会注意到我们的可移动对象的行为不正常。我们将在下一章讨论对象的行为。