在Unity文档中,Input.getKeyUp说
在用户释放由名称
标识的密钥的框架中返回true
我的脚本是:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveSphere : MonoBehaviour {
public float speed = 5;
void Update () {
Vector3 pos = transform.position;
if (Input.GetKey (KeyCode.LeftArrow)) {
pos.x -= Time.deltaTime * speed;
transform.position = pos;
} else if (Input.GetKeyUp (KeyCode.Space)) {
Debug.Log ("Space key up");
pos.y += Time.deltaTime * speed;
transform.position = pos;
}
}
}
现在Input.GetKey(KeyCode.LeftArrow)
正如我预期的那样工作,所以如果我按住它,我的对象会不断移动到左边。但是,当我按下空格键时,我希望我的对象能够“跳转”,但我不希望它在空格键保持时连续上升,这就是为什么我使用Input.GetKeyUp
而不是GetKey
然而当我按住空格键,它不断向上移动。
当空格键被按住时,我怎么能这样做呢?除了当我松开空格键时它向上移动。
答案 0 :(得分:0)
我真的不知道为什么它会以这种方式表现,但如果我是你,我会考虑在另一个if()
子句中进行每次密钥检查,而不是{{1} } 您正在使用。尝试这样写,看它是否有效。
此后
然而,我希望我的对象能够跳过"跳跃"当我按空格键时
我会按else if()
GetKeyUp
GetKeyDown