Physics2D.IgnoreLayerCollision,对象仍然碰撞

时间:2015-05-30 20:41:17

标签: c# unity3d

我遇到以下代码时出现问题,尽管图层碰撞矩阵表示图层不应该碰撞(即使手动设置),标记为图层8的对象仍然会与第11层中的对象发生碰撞。

是否存在修复/替代方法,使不同层的对象不会发生碰撞。

if (Drop)
{
    Physics2D.IgnoreLayerCollision(11, 8);
}
else
{
     Physics2D.IgnoreLayerCollision(11, 8, false);
}

1 个答案:

答案 0 :(得分:1)

找到了解决方案。

我的Prefab中的Use Collider Mask已停用Platform Effector 2D

并将代码更改为:

      if (Drop)
        {
            Physics2D.IgnoreLayerCollision(8, 11);

            myGameObject.GetComponent<EdgeCollider2D>().enabled = false;
            myGameObject.GetComponent<EdgeCollider2D>().enabled = true;
        }
        else
        {
            Physics2D.IgnoreLayerCollision(8, 11, false);
        }