保持空间并跳跃



我正在尝试制作我的第一个游戏,我想在每次跳跃之间创建一个计时器。例如,如果我按住空格键0.5秒,释放后我可以跳到最小高度。如果我坚持3.5秒,那么我就可以跳中等高度,以此类推。我不知道如何解决这个问题。总的来说,当玩家释放空格键时,然后跳跃,而不是按下。

我的代码如下:

IEnumerator Jump()
{
if (Input.GetKeyDown(KeyCode.Space) && (holdTime >= 0f))
{
jumpForce = 2f;
}
else if (Input.GetKeyDown(KeyCode.Space) && (holdTime >= 3f))
{
jumpForce = 5f;           
}
else if (Input.GetKeyDown(KeyCode.Space) && (holdTime == 5f))
{
jumpForce = 10f;
}
else
{
//force player to jump
yield return new WaitForSeconds(0);
}       
}

尝试将其全部移动到更新循环中。

float holdTimer = 0f;
protected void Update()
{
//Check if you released first
if (Input.GetKeyUp(KeyCode.Space))
{
//Jump based on the time held
if (holdTimer >= 5f)
{
jumpForce = 10f;
}
else if (holdTimer >= 3f)
{
jumpForce = 5f;
}
else
{
jumpForce = 2f;
}
//reset the timer
holdTimer = 0f;
}
if (Input.GetKey(KeyCode.Space))
{
//Increment the timer every frame.
holdTimer += Time.deltaTime;
}
}

最新更新