我已经遵循了“Roll-A-Ball”的Unity教程,并添加了一些扩展。球现在可以跳起来,但是每次跳起都会跳得太多次;当我按下SPACE时,我只想要一次球。现在我可以在SPACE上按3次,它会越来越高。如何解决双跳
if (Input.GetKeyDown(KeyCode.Space))
{
Vector3 jump = new Vector3(0.0f, 150.0f, 0.0f);
rb.AddForce(jump);
}
编辑:
试图改变的代码一点点,但现在我只能跳一次(第一次)
private void textBox_KeyDown(object sender, KeyEventArgs e)
{
if (Input.GetKeyDown(KeyCode.Space) && jump.y <= 0.0f)
{
jump.Set(0.0f, 150f, 0.0f);
rb.AddForce(jump);
}
}
你会得到这个结果,因为每当你按下空间时你都会给球增加额外的力量。 3按== 3 *方向的力量。监测球的向上速度,只有在满足特定参数时才加力。即如果向上速度<= 0,那么你可以跳!别的,你不能。 – Zze
试图做到这一点,但它不起作用:( –
@adadudu奇怪的是,一旦Z速度在空中遇到'0.0f',这意味着在轨迹中间 - 也就是说,除非我错了,我对UnityScript一无所知。只要按下空格键就可以尝试记录速度,以确保您没有丢失任何东西:^) – Gustavo6046