Input.KeyDown()返回错误,但Input.GetKeyDown()不返回



我遇到了一个奇怪的问题。我试着让一个物体朝着你按下的方向移动只要你按住那个按钮。当我使用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

相关内容

最新更新