首页 > 解决方案 > 为什么混搭跳跃会让玩家跳两次?

问题描述

我有一个问题,如果玩家足够快地按下跳跃按钮,他们会获得额外的跳跃。

我很确定这与我对郊狼时间的实施有关,因为它让玩家即使稍微离开地面也能跳跃,但我不确定如何在不完全移除机制的情况下改变它来解决这个问题。

这是我用于跳跃的代码。

    //Check if player is grounded
    IsGrounded = Physics2D.OverlapCircle(GroundCheck.position, 0.1f, GroundLayer);


    //Coyote Jump
    if (IsGrounded == true)
    {
        HangCount = HangTime;
    }
    else if(IsGrounded == false)
    {
        HangCount -= Time.deltaTime;
    }

    //Jump Buffer
    if (Input.GetButtonDown("Jump"))
    {
        JumpBufferCount = JumpBufferLength;
    }
    else
    {
        JumpBufferCount -= Time.deltaTime;
    }

    //Jump
    if (JumpBufferCount >= 0 && HangCount > 0)
    {
        RB.velocity = new Vector2(RB.velocity.x, JumpHeight);
        FindObjectOfType<AudioManager>().Play("Jump");
        HangCount = 0;
        JumpBufferCount = 0;
    }

 
}
}

标签: c#unity3d

解决方案


找到了解决方案。我刚刚添加了一个检查,看看我的 Y 速度是否等于或小于 0,所以玩家在上升时不能跳跃。


推荐阅读