我希望我的角色忽略当我按下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> ());
}
}
答案 0 :(得分:2)
在你的角色rigidbody2d上,设置&#39;睡眠模式&#39;从不睡觉这将允许角色无论移动如何都能检测每帧的碰撞。
https://docs.unity3d.com/ScriptReference/Rigidbody2D-sleepMode.html