Unity - OnCollisionStay2D无法正常工作

时间:2018-01-25 11:21:04

标签: unity3d 2d

我希望我的角色忽略当我按下S时碰撞的图层(就像在Gun Mayhem中当你按下与图层碰撞时按下并且角色忽略与该图层的碰撞时)。问题是OnCollisionStay2D函数仅在我移动时才起作用。因此,如果我的角色正在移动,我只能忽略与我碰撞的层的碰撞。否则,它不起作用。这是我为了让角色忽略碰撞而拥有的东西 我的代码:

void OnCollisionStay2D(Collision2D c)
{
    Debug.Log("COLLISION");
    if (Input.GetKeyDown (KeyCode.S) || Input.GetKeyDown (KeyCode.DownArrow))
    {
        Physics2D.IgnoreCollision (GetComponent<Collider2D> (), c.gameObject.GetComponent<Collider2D> ());
    }
}

1 个答案:

答案 0 :(得分:2)

在你的角色rigidbody2d上,设置&#39;睡眠模式&#39;从不睡觉这将允许角色无论移动如何都能检测每帧的碰撞。

https://docs.unity3d.com/ScriptReference/Rigidbody2D-sleepMode.html