首页 > 解决方案 > Unity:玩家跳得很好,但下落非常慢

问题描述

我目前正在构建一个带有可以跳跃角色的小型 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;

    }

看起来非常适合每次跳跃然后回落。

但是:当玩家没有跳跃就直接跌落(就像从悬崖上掉下来一样),看起来他有一片叶子的质量。极慢地航行到地面。根本没有加速。就像慢动作一样坠落。当然我可以增加重力,但这也会影响我跳跃后的跌落,让他看起来像一块石头。好像下落速度加快了什么的。但这没有意义。他在跳跃后摔倒,而他刚刚从某物上摔下来应该看起来一样,对吧?但它没有。

这些是我对 RB 的价值观:

在此处输入图像描述

标签: unity3dgravity

解决方案


可能是 的问题animator,如果动画包含对 的更改Rigidbody,如果您在动画中设置了 Make Default,它会做一些奇怪的事情。


推荐阅读