Unity: игрок прыгает нормально, но падает крайне медленно - PullRequest
0 голосов
/ 06 февраля 2019

В настоящее время я создаю небольшой 2D-платформер с персонажем, который может прыгать.Вот как выглядит прыжок (FixedUpdate):

    if (jump)
    {

        if (isGrounded)
        {
            isGrounded = false;

            rb.AddForce(Vector2.up * (jumpHeight * counterForJumpHeight) * Time.deltaTime, ForceMode2D.Impulse);
            jump = false;

            anim.SetBool("bool_anim_isJumping", true);
        }

        if (timer != null)
            timer.Stop();

        counterForJumpHeight = jumpMulitMin;

        jumpAlreadCharging = false;

    }

Выглядит идеально для каждого прыжка вверх, а затем падает назад.

ОДНАКО: когда игрок ПРОСТО падает (как с обрыва)что-то) без прыжка похоже, что у него масса листа.Плыть на землю экстремлей медленно.Не ускоряется вообще.Просто падаю как в замедленном темпе.Конечно, я могу увеличить гравитацию, но это также влияет на падение ПОСЛЕ моего прыжка и делает его похожим на камень.Как будто падение ускоряется или что-то.Но это не имеет смысла.Он падает после прыжка, а тот, кто падает с чего-то, должен выглядеть так же, верно?Но это не так.

Это мои значения для РБ:

enter image description here

Ответы [ 4 ]

0 голосов
/ 07 февраля 2019

это была моя вина, не было никакой возможности угадать это с вашей точки зрения.Все, с чего игрок мог прыгнуть, было помечено как «can_jump».

void OnCollisionEnter2D(Collision2D col)
{
    if (col.gameObject.tag == "can_jump") // detect collision with ground game object 
    {
        isGrounded = true;
        deacceleratePerFrame = 1.5f;
        anim.SetBool("bool_anim_isJumping", false);
    }

}

Сюда входят все ребра.Удаление этого означает, что я больше не могу прыгать, но это вызвало проблему.Я уверен, что найду другой путь :-) всем спасибо

0 голосов
/ 06 февраля 2019

Я не уверен на 100%, но это может быть связано с обнаружением столкновений.Попробуйте изменить настройку на непрерывную динамическую, а не дискретную.

0 голосов
/ 06 февраля 2019

Это может быть проблема с animator, если анимация содержит изменения Rigidbody, это делает странные вещи, если вы установили Make Default в анимации.

0 голосов
/ 06 февраля 2019

Вы можете либо увеличить массу твердого тела вашего игрока, либо увеличить гравитацию в edit / projectsettings / физика

...