禁用或启用基于对象标签Unity 2d的碰撞



我想根据unity 2d游戏中的对象标签禁用或启用与该对象的碰撞。假设我有一个标记为"foo1"的对象和标记为"foo2"的对象。如果用户选择与对象"foo1"碰撞,则不应与对象"foo2"碰撞。

我怎样才能做到这一点?我试过这个:

 void OnCollisionEnter(Object other)
 {
      if (other.tag == "foo1")
          collider.enabled = false;
 }

但这不起作用有两个原因。第一个对象必须将isTrigger设置为true(这不能用于用作地面的对象),如果我禁用整个对撞机,那么对象将从地面坠落。

我是团结的新手,我会更详细地研究它,但我正在寻求快速帮助,也许知道如何做到这一点?

您可能不想通过标记来实现这一点,而是想看看层。

通过将不同的对象指定给不同的层,可以将它们设置为相互碰撞或忽略任何潜在的碰撞。你可以在实现这一点

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

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

最新更新