我希望我的角色在按下 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> ());
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
在角色刚体2d 上,将“睡眠模式”设置为“永不睡眠”。这将使您的角色能够在每一帧中检测到碰撞,而不管运动如何。
https://docs.unity3d.com/ScriptReference/Rigidbody2D-sleepMode.html
| 归档时间: |
|
| 查看次数: |
3922 次 |
| 最近记录: |