加速 - 如何在未按下按键时重置值

时间:2014-12-28 20:06:56

标签: c# unity3d

我正在尝试将一个小的2D游戏设置到空间中,我正在制作用于移动船的脚本,这是代码的一部分:

public float acceleration;
public float maxSpeed;

void Start () {

}

void Update () {

    if (Input.GetKey(KeyCode.W)) {
        transform.Translate(Vector3.forward*acceleration, Space.Self);
        if (acceleration < maxSpeed) acceleration += 0.1F;

现在,正如您所看到的,代码中没有错误,但这不是问题,我想在未按下“W”键时将“acceleration”的值重置为0,但我没有我怎么做的想法。

2 个答案:

答案 0 :(得分:1)

好的,我自己解决了..

这是代码,如果有人想知道

void Update () {

    transform.Translate(Vector3.forward * shipSpeed, Space.Self);

    if (Input.GetKey(KeyCode.W)) {
        if (shipSpeed < maxSpeed) shipSpeed += 0.1F;
    }

    if (Input.GetKey(KeyCode.S))
    {
        if (shipSpeed > 0) shipSpeed -= 0.1F; 
    }

PS:我将加速重命名为shipSpeed

答案 1 :(得分:0)

您可以使用Input.GetKeyUp检测按钮已被释放

   if (Input.GetKeyUp(KeyCode.W))
    {
        //W key released reset acceleration to zero
    }