WasTabon
@WasTabon

Почему в платформере персонаж все время прыгает на разную высоту?

if (hit.collider != null)
        {
            Debug.Log(hit.collider.gameObject.name);
            if (isGrounded() && hit.collider.gameObject.name != "Player")
            {
                rigidbody2D.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
            }
        }

62292a475836e901796887.png
62292a5e2cfbf093280662.png
Может выского прыгать, а может низко
jumpForce не меняется
Код isGrounded()
private bool isGrounded()
    {
        float extraHeight = 0.1f;
        RaycastHit2D raycastHitGround = Physics2D.Raycast(boxCollider2D.bounds.center, Vector2.down, boxCollider2D.bounds.extents.y + extraHeight);
        Color rayColor;
        if (raycastHitGround.collider != null)
        {
            rayColor = Color.green;
        }
        else
        {
            rayColor = Color.red;
        }
        Debug.DrawRay(boxCollider2D.bounds.center, Vector2.down * (boxCollider2D.bounds.extents.y + extraHeight));
        return raycastHitGround.collider != null;
    }
  • Вопрос задан
  • 62 просмотра
Решения вопроса 2
freeExec
@freeExec
Участник OpenStreetMap
Значит несколько раз прикладываешь силу.
Ответ написан
Комментировать
@Farawa
Сделай задержку между прыжками 0.1 сек, у тебя несколько раз происходит прыжок в короткий промежуток времени
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы