基于物体标签,在Unity 2D中禁用或启用碰撞。

5
我希望能够根据标签禁用或启用Unity2D游戏中对象的碰撞。比如说,我有一个标签为“foo1”的对象和一些标签为“foo2”的对象。如果用户选择与对象“foo1”碰撞,则它不应该与对象“foo2”碰撞。
我该如何实现这个功能?我尝试了以下方法:
 void OnCollisionEnter(Object other)
 {
      if (other.tag == "foo1")
          collider.enabled = false;
 }

但这种方法有两个问题。首先,对象必须将isTrigger设置为true(对于用作地面的对象无法设置此项),如果我禁用整个碰撞器,则对象将掉落到地面下。

我刚接触Unity,将会更加深入地学习它,但我现在需要快速帮助和想法怎样解决这个问题?

1个回答

10

不必通过标签来实现,您可以考虑查看图层。通过将不同的对象分配到不同的图层中,可以设置它们相互碰撞或忽略任何潜在的碰撞。您可以在以下位置进行设置:

编辑->项目设置->物理

在这里,您可以编辑图层碰撞矩阵以启用或禁用层元素之间的碰撞。


这个答案让我省了很多麻烦。 - Bizhan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接