Physics2D.IgnoreLayerCollision,对象仍然会碰撞
本文关键字:碰撞 对象 IgnoreLayerCollision Physics2D | 更新日期: 2023-09-27 17:51:16
我对下面的代码有问题,尽管图层碰撞矩阵说图层不应该碰撞(即使手动设置),标记为第8层的对象仍然与第11层的对象碰撞。
是否有一个修复/替代方案使不同层的对象不碰撞
if (Drop)
{
Physics2D.IgnoreLayerCollision(11, 8);
}
else
{
Physics2D.IgnoreLayerCollision(11, 8, false);
}
找到解决办法了
在my Prefab中禁用Platform Effector 2D
上的Use Collider Mask
并将代码改为:
if (Drop)
{
Physics2D.IgnoreLayerCollision(8, 11);
myGameObject.GetComponent<EdgeCollider2D>().enabled = false;
myGameObject.GetComponent<EdgeCollider2D>().enabled = true;
}
else
{
Physics2D.IgnoreLayerCollision(8, 11, false);
}