我遇到了一个奇怪的问题。我试着让一个物体朝着你按下的方向移动只要你按住那个按钮。当我使用Input.GetButton()时,我得到一个错误,我使用的方向("左"、"右"、"上"或"下")没有定义,但它是定义的。如果我使用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");
}
}
输入。GetButton和Input。GetKeyDown取两个不同的输入
输入。GetKeyDown检查"左"键是否被按下。话虽如此,文档说您应该使用KeyCode对象作为参数,如下所示:
if (Input.GetKeyDown(KeyCode.LeftArrow)) // reads the left arrow key
(参见GetKeyDown和KeyCode文档)
输入。GetButton期望检查具有指定名称的Button对象是否被按下。
if (Input.GetButton("Fire1")) //reads the CTRL key