我遇到了一个问题,如果玩家足够快地按下跳跃按钮,他们会获得额外的跳跃。
我很确定这与我对土狼时间的实施有关,因为它让玩家即使稍微离开地面也能跳跃,但我不确定如何在不移除机械师的情况下对其进行更改以解决此问题完全。
这是我用于跳跃的代码。
//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;
}
}
}
答案 0 :(得分:0)
找到了解决办法。我刚刚添加了一个检查,看看我的 Y 速度是否等于或小于 0,因此玩家在上升时无法跳跃。