Physics2D不会停止碰撞

时间:2019-10-09 17:34:53

标签: unity3d game-physics

我一直试图做到这一点,以便当我按下一个键时,所有对玩家和墙壁的碰撞都关闭。我知道Physics2D.IgnoreCollision代码正在运行,但是玩家仍然无法穿过墙壁。

如果有帮助,玩家可以使用RigidBody2DBoxCollider2D组件,而墙壁可以使用PlatformEffector2DBoxCollider2D组件。

下面是我试图用来关闭碰撞的update函数中的代码。

if (Input.GetKeyDown (KeyCode.I)) 
{
    foreach (var player in allPlayers) 
    {
        BoxCollider2D playerCollider = player.GetComponent<BoxCollider2D>();
        if (playerCollider != null) 
        {
            foreach (var wall in allWalls) 
            {
                BoxCollider2D wallCollider = player.GetComponent<BoxCollider2D>();
                if (wallCollider != null) 
                {
                    Physics2D.IgnoreCollision (playerCollider, wallCollider, true);
                }
            }
        }
    }
}

0 个答案:

没有答案