【问题标题】:Physics2D.IgnoreLayerCollision, objects still collidePhysics2D.IgnoreLayerCollision,物体仍然碰撞
【发布时间】:2015-12-08 17:59:49
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# unity3d


    【解决方案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);
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2014-04-04
      • 2017-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多