📅  最后修改于: 2020-10-29 04:18:59             🧑  作者: Mango
Unity中的碰撞与实际的Sprite本身是分开的,它们作为单独的组件进行附加并单独计算。现在让我们了解其背后的原因。
在游戏中的一切都是一个游戏对象。甚至组成您的关卡的各个图块本身都是GameObjects。
当我们将每个组件视为一个GameObject时,我们意识到场景中可能有成千上万个GameObject,它们以某种方式彼此交互。您可以想象,如果Unity将碰撞添加到每个单个GameObject,则引擎为每个单个游戏对象计算碰撞将是不切实际的。
我们将继续添加一个简单的“墙”,玩家的字符可以与之碰撞。为此,创建另一个精灵,然后使用Rect工具将其放大。我们还将通过Sprite Renderer组件中的Color属性为其赋予红色。
现在,转到“检查器”中的“添加组件”,然后键入“ Box Collider 2D”。单击出现的第一个组件,然后将出现一个新组件。
您将在GameObject的外围看到一条鲜绿色的线。这是碰撞边界。它定义可碰撞对象的实际形状。
对我们的可移动GameObject也重复同样的操作。
当然,Unity中的冲突不仅限于盒子。它们的范围可以是各种形状和大小,并且不一定是对象参数的副本。
它们也可以采用多边形形状。
看到开发人员和设计人员在碰撞边界中使用近似形状来简化对撞机并避免对引擎进行不必要的计算的情况并不少见。我们将很快学习如何与我们的对撞机创建不同的形状和尺寸。
现在我们已经设置了碰撞边界,点击播放并看到它的运行状态。
您会注意到我们的可移动对象行为不正常。我们将在后续章节中讨论对象的行为。