我从Unity 5开始,我的2D碰撞有点疏远。仔细研究一下,我发现可以定义三种类型的对象: - 静态:仅仅是2D对撞机(例如2D碰撞盒组件)。 - 动态:2D对撞机+ 2D刚体。 - 运动学:2D对撞机+ 2D刚体设置为运动学。
据我所知,他们以这种方式发生碰撞: 静态:仅与动态发生碰撞。 动态:仅与静力学和运动学相撞。 运动学:只与动力学碰撞。
我正在尝试制作一个简单的太空入侵者,我正在努力定义不同元素(外星人,玩家,外星子弹和玩家子弹)的碰撞类型。 我想我可以将对象设置为动态并禁用重力以匹配正确的碰撞类型。
但我的问题是,例如我想与一些相同类型的敌人(实例化一个预制件)进行简单的游戏,我希望这些敌人能够检测到彼此的碰撞。我该如何设置敌人的碰撞属性才能实现呢?
非常感谢提前!
答案 0 :(得分:0)
我个人会将敌人放在同一层中,并确保它们相互碰撞。您可以在检查器中设置预制件的图层,它位于名称下方,如您所见:
点击图层后,还可以在完整的底部添加新图层。
然后我会设置Layer Collision Matrix
到菜单Edit
- Project Settings
- Physics 2D
以匹配需要或不需要互相碰撞的图层,如下所示:
在此示例中,Enemy
图层不会与除其自身之外的任何其他图层发生碰撞。