我正在尝试将一个小的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,但我没有我怎么做的想法。
答案 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
}