根据对象标记Unity 2d禁用或启用冲突

时间:2013-11-29 20:06:00

标签: unity3d

我想基于其标签在Unity 2d游戏中禁用或启用与对象的碰撞。假设我有标签“foo1”的对象和标签为“foo2”的对象。如果用户选择与对象“foo1”发生碰撞,那么它不应该与对象“foo2”发生碰撞。

我怎么能实现这个目标?我试过这个:

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

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

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

1 个答案:

答案 0 :(得分:11)

您可能希望have a look at layers而不是通过标记执行此操作。

通过将不同的对象分配给不同的图层,您可以将它们设置为相互碰撞,或忽略任何潜在的碰撞。你可以在

实现这一目标
  

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

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