我有一个奇怪的问题。只要你按住那个按钮,我就试图让一个物体向你按下的方向移动。当我使用Input.GetButton()时,我得到的错误是我使用的方向("左,""右,"" up,"或者" down")未定义,但已定义。如果我使用Input.GetKeyDown()代替,一切都像往常一样编译。
using UnityEngine;
using System.Collections;
public class MovementHandler : MonoBehaviour {
void Update () {
// if (Input.GetButton ("left")) //Does Not work
// Debug.Log ("left");
if (Input.GetKeyDown ("left")) //Works
Debug.Log ("left");
}
}
答案 0 :(得分:1)
Input.GetButton和Input.GetKeyDown有两个不同的输入。
Input.GetKeyDown检查键"左"被压了。话虽这么说,文档说您应该使用KeyCode对象作为参数,如下所示:
if (Input.GetKeyDown(KeyCode.LeftArrow)) // reads the left arrow key
(请参阅GetKeyDown和KeyCode文档。)
Input.GetButton期望检查是否正在按下具有指定名称的Button对象。
if (Input.GetButton("Fire1")) //reads the CTRL key