如何在Unity(2D)中忽略对象上的碰撞

本文关键字:对象 碰撞 Unity 2D | 更新日期: 2023-09-27 17:59:20

我的游戏中有5个对象和2个"帧"。我希望其中1个对象与内部框架碰撞,但不希望另外4个对象与之碰撞。我已经将长方体碰撞器附加到框架上,并将圆碰撞器添加到5个对象上。我的问题是,我不希望这4个对象与内部框架碰撞,而只是与外部框架碰撞。我的问题有解决办法吗?

如何在Unity(2D)中忽略对象上的碰撞

对于任何找不到此问题的解决方案的人:如果子对象的碰撞器是触发器,而父对象的碰撞机不是触发器,则可以在OnCollisionEnter方法中检查碰撞。如果你仍然想用其他对撞机做一些事情,那么你可以在OnTriggerEnter方法中完成。这将两个对撞机分成两个不同的功能。这对我有帮助,因为我的孩子对象是一个触发器,我希望这个解决方案能帮助其他人。

这是官方指南中解释如何使用碰撞矩阵的页面。这是解决问题的正确方法:https://docs.unity3d.com/Documentation/Components/LayerBasedCollision.html

基本上,您可以进入编辑->项目设置->物理,然后定义层碰撞的规则。然后,您只需要为每个对象指定一个层。

对于那些有这个问题的人来说,如果你的父母有RidgidBody,任何子碰撞器都会触发碰撞。

我通过给我的孩子添加一个RidgidBody来解决这个问题,这避免了从父母那里继承。