Unity 2D碰撞 - 如何设置相互碰撞的对象

时间:2015-05-14 13:53:23

标签: unity3d 2d collision

我从Unity 5开始,我的2D碰撞有点疏远。仔细研究一下,我发现可以定义三种类型的对象: - 静态:仅仅是2D对撞机(例如2D碰撞盒组件)。 - 动态:2D对撞机+ 2D刚体。 - 运动学:2D对撞机+ 2D刚体设置为运动学。

据我所知,他们以这种方式发生碰撞: 静态:仅与动态发生碰撞。 动态:仅与静力学和运动学相撞。 运动学:只与动力学碰撞。

我正在尝试制作一个简单的太空入侵者,我正在努力定义不同元素(外星人,玩家,外星子弹和玩家子弹)的碰撞类型。 我想我可以将对象设置为动态并禁用重力以匹配正确的碰撞类型。

但我的问题是,例如我想与一些相同类型的敌人(实例化一个预制件)进行简单的游戏,我希望这些敌人能够检测到彼此的碰撞。我该如何设置敌人的碰撞属性才能实现呢?

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

我个人会将敌人放在同一层中,并确保它们相互碰撞。您可以在检查器中设置预制件的图层,它位于名称下方,如您所见:

enter image description here

点击图层后,还可以在完整的底部添加新图层。

然后我会设置Layer Collision Matrix到菜单Edit - Project Settings - Physics 2D以匹配需要或不需要互相碰撞的图层,如下所示:

enter image description here

在此示例中,Enemy图层不会与除其自身之外的任何其他图层发生碰撞。