【问题标题】:Input.GetButtonDown("Jump"); in Unity does not work for space key [duplicate]Input.GetButtonDown("跳转");在 Unity 中不适用于空格键 [重复]
【发布时间】:2020-09-01 00:47:06
【问题描述】:

我知道这个问题之前已经被问过并得到了回答,但就我而言,答案并不能解决问题。我以前看过的没有答案能够解决这个问题,即使在 Unity 论坛中,我也找不到有用的信息。 在 Unity 中,我正在尝试构建一个 2D 游戏,没什么大不了的。

我正在尝试设置我的运动脚本,水平运动就像一个魅力。但是跳跃不起作用,至少当按钮分配给 Space 时。到目前为止,这是我的代码:

void Update() {
    if (Input.GetButtonDown("Jump")) {
        Debug.Log("Jump!");
        rigidBody.velocity = new Vector2(rigidBody.velocity.x, jumpSpeed);
    }
}

这 - 正如你所知道的 - 非常简单。我试图将另一个键分配给Jump。使用 E 按钮一切顺利,我的角色跳了起来。但是当使用 Space 时,它不起作用。这是我的输入管理器的图像:

请注意,我没有配置第二个跳转选项。这是我使用 E 键的地方。


(如果提供更多信息,我正在使用 Linux Mint Tricia 19.3)

【问题讨论】:

  • 不久前有人问过类似的问题。显然,在 Linux 上使用空间进行输入已被破坏。如果您不使用 Linux,请忽略这一点。如果你是,我会尝试找到原始问题的链接。
  • 是的,我目前正在使用 linux mint tricia 19.3。谢谢

标签: c# unity3d input


【解决方案1】:

作为替代方案,您可以使用if (Input.GetKeyDown(KeyCode.Space)),也许问题在于“跳转”按钮的设置方式,但对我来说没有什么特别突出的。

【讨论】:

  • 这对我不起作用... :( 不过还是谢谢你
【解决方案2】:

我相信您可以使用GetKeyDownKeyCode 来解决您的问题。可以修改您的代码以使用这些功能。我在下面改进了您的代码。只要确保KeyCode.Space 没有分配给任何其他键即可。

void Update() {
    if (Input.GetKeyDown(KeyCode.Space)) {
        Debug.Log("Jump!");
        rigidBody.velocity = new Vector2(rigidBody.velocity.x, jumpSpeed);
    }
}

我还为您准备了一些脚本文档:

【讨论】:

  • 如果这个建议有效,请接受这个答案,因为它可以帮助整个社区。如果这个答案不起作用,请通过 cmets 告诉我,我或许可以为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
相关资源
最近更新 更多