Всем привет! Столкнулся с такой проблемой: когда персонаж на земле - IsGrounded работает и он может прыгать, но он так же может прыгать, когда соприкасается со стеной (просто прыгает вверх по стене, пока не перестанешь нажимать на пробел). Надо чтобы IsGrounded работал только при соприкосновении с землёй.
public float JumpForce = 1f;
public bool IsGrounded = false;
public float checkGroundOffsetY = -1.8f;
public float checkGroundRadius = 0.3f;
void Jump()
{
if (IsGrounded && Input.GetKeyDown(KeyCode.Space))
{
rb.AddForce(transform.up * JumpForce, ForceMode2D.Impulse);
}
}
void CheckGround()
{
Collider2D[] colliders = Physics2D.OverlapCircleAll(new Vector2(transform.position.x, transform.position.y + checkGroundOffsetY), checkGroundRadius);
if (colliders.Length > 1)
{
IsGrounded = true;
}
else
{
IsGrounded = false;
}
}
private void FixedUpdate()
{
CheckGround();
}
private void Update()
{
Jump()
}