https://pasteboard.co/IrKZbCV.png
void OnCollisionEnter2D(Collision2D col)
{
float angle = Vector3.Angle(Vector3.up, col.contacts[0].normal);
if (col.transform.gameObject.tag == "enemyWalk")
{
Physics2D.IgnoreCollision(col.gameObject.GetComponent<Collider2D>(), GetComponent<Collider2D>(), true);
}
else
{
Physics2D.IgnoreCollision(col.gameObject.GetComponent<Collider2D>(), GetComponent<Collider2D>(), false);
}
if (col.transform.gameObject.tag == "stone")
{
angle = Vector3.Angle(Vector3.up, col.contacts[0].normal);
if (Mathf.Approximately(angle, 0))
{
isGround = true;
taş = true;
}
}
else if (col.transform.gameObject.tag == "ground")
{
angle = Vector3.Angle(Vector3.up, col.contacts[0].normal);
if (Mathf.Approximately(angle, 0))
{
isGround = true;
çimen = true;
}
}
}
if ((isJump.jmp || Input.GetKeyDown(KeyCode.Space)) && !isDeath && isGround)
{
rgd.AddForce(new Vector2(0, 2.750f), ForceMode2D.Impulse);
jumpAudio.Play();
isGround = false;
}
当我按下跳跃键时我只想跳我的角色一次,但是当我在图片上显示这种情况时,有时我的角色在我跳到岩石底部附近时跳得太高了。我的意思是,好像我的跳跃代码同时工作多次。我在等你的帮助。