c# - 为什么混搭跳跃会让玩家跳两次?
问题描述
我有一个问题,如果玩家足够快地按下跳跃按钮,他们会获得额外的跳跃。
我很确定这与我对郊狼时间的实施有关,因为它让玩家即使稍微离开地面也能跳跃,但我不确定如何在不完全移除机制的情况下改变它来解决这个问题。
这是我用于跳跃的代码。
//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;
}
}
}
解决方案
找到了解决方案。我刚刚添加了一个检查,看看我的 Y 速度是否等于或小于 0,所以玩家在上升时不能跳跃。
推荐阅读
- javascript - 如何通过 Node.js 加载延迟加载的 Angular 脚本块
- python - output.grad 即使在 loss.backward() 之后也没有
- python - Python初学者——使用常量打开文件回溯
- python - SQLAlchemy:查询过滤器,包括来自关联表的额外数据
- android - 尝试在 Kotlin 中使用相机拍照时如何解决 java.lang.SecurityException?
- leaflet - 如何将预定义的地点/标记添加到 Leaflet Geocoder
- assembly - mov fileName - 错误:操作码和操作数的组合无效
- python - 如何以比输入更小的准确度查询MongoDB中的一对坐标?
- ios - React Native 图像不会显示在一个应用程序上,但会显示在其他新应用程序上
- javascript - Javascript:如何在 jss 中使用相邻的兄弟选择器// 点击时改变颜色