C# 我正在做一个滚球游戏,我增加了跳跃,但由于某些原因,我可以跳无限次

C# 我正在做一个滚球游戏,我增加了跳跃,但由于某些原因,我可以跳无限次,c#,unity3d,C#,Unity3d,我正在做一个滚球游戏,我在游戏中加入了跳跃,但由于某些原因,我可以无限次跳跃。这是我的代码(我把跳跃脚本和运动脚本放在一起) 使用系统集合; 使用System.Collections.Generic; 使用UnityEngine; 公共类控制:单一行为 { 公众浮标速度; 私人刚体; void Start() { rb=GetComponent(); } 私有void FixedUpdate() { float moveHorizontal=Input.GetAxis(“垂直”); float

我正在做一个滚球游戏,我在游戏中加入了跳跃,但由于某些原因,我可以无限次跳跃。这是我的代码(我把跳跃脚本和运动脚本放在一起)

使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类控制:单一行为
{
公众浮标速度;
私人刚体;
void Start()
{
rb=GetComponent();
}
私有void FixedUpdate()
{
float moveHorizontal=Input.GetAxis(“垂直”);
float moveVertical=Input.GetAxis(“水平”);
浮跳;
if(Input.GetKeyDown(KeyCode.Space))
跳跃=14.0f;
其他的
跳跃=0;
Vector3移动=新的Vector3(移动垂直、跳跃、移动水平);
rb.AddForce(移动*速度);
}
}

你可以无限跳跃,因为你没有检查球是否在地面上。有几种方法可以解决这个问题。我建议你看视频


如果你想知道检查地面的其他方法,你也可以观看。

你可以在空中跳跃的原因是你的代码中没有任何东西可以防止玩家重复跳跃。在允许玩家跳转之前,你必须添加一个检查玩家是否可以跳转。你认为我应该在我的代码中添加什么来修复它?太棒了!如果你能把这个作为答案,我将不胜感激。