C# Unity Input.GetButtonDown(“跳跃”)和Input.GetKeyDown(KeyCode.Space)始终为false

C# Unity Input.GetButtonDown(“跳跃”)和Input.GetKeyDown(KeyCode.Space)始终为false,c#,unity3d,input,keydown,C#,Unity3d,Input,Keydown,我无法检测是否按下了空格键,我有以下代码: void Update() { // Working if (Input.anyKeyDown) { Debug.Log("anyKeyDown"); } // Not working if (Input.GetButtonDown("Jump")) { Debug.Log("GetButtonDown - Jump"); } // Not wo

我无法检测是否按下了空格键,我有以下代码:

void Update() {
  // Working
  if (Input.anyKeyDown) {
    Debug.Log("anyKeyDown");
  }

  // Not working
  if (Input.GetButtonDown("Jump")) {
    Debug.Log("GetButtonDown - Jump");
  }

  // Not working
  if (Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown("space")) {
    Debug.Log("KeyCode.Space");
  }

  // Working
  if (Input.GetKeyDown(KeyCode.A)) {
    Debug.Log("A");
  }
}
我可以检测到,例如,
A
是否被单击,但对于
Input.GetButtonDown(“跳转”)
Input.GetKeyDown(KeyCode.Space)| Input.GetKeyDown(“Space”)

下面,您可以从我的控制台看到图像:

我正在使用默认的unity
Input Manager
设置,我可以看到两个
跳转配置:


您考虑过使用

if (Input.GetKeyDown("space"))
    {
        Debug.Log("space key was pressed");
    }

相反?

可能不在输入编辑器中使用2个跳转声明。制作一个并选择其轴到X

if (Input.GetKeyDown(KeyCode.Space))
{

}

如果使用Alt正片按钮将两个跳转合并为一个,会发生什么情况?基本上也不起作用,如果我将
正片按钮
跳转
更改为任何其他字符,例如
a
,我可以通过
输入来检测它。GetButtonDown(“跳转”)
。看起来很奇怪。这里有一个信息提示
考虑改用新的输入系统包
,也许我会尝试这个方向是的,在我的代码片段中有它:
Input.GetKeyDown(KeyCode.Space)| Input.GetKeyDown(“Space”)
Oops,我请便。在这种情况下,我唯一的猜测是,这是由两个输入同名引起的。如果您将后者更改为类似“JoystickJump”的内容,并将其作为OR添加到If语句中,那么它可能会起作用。还有,也许你还需要填写输入的描述性名称。你也尝试了这个,更改了输入的名称,但仍然没有成功。是的,在我的代码片段中有:input.GetKeyDown(KeyCode.Space)| input.GetKeyDown(“Space”)