【问题标题】:How to detect if the right arrow is pressed in an if statement?如何检测 if 语句中是否按下了右箭头?
【发布时间】:2021-08-10 06:34:11
【问题描述】:

我是一名新程序员,正在尝试在 Unity 中制作游戏,我想制作一个 if 语句来感知何时按下右箭头键。 到目前为止,这对我来说一直是用字母键工作的:

if (Input.GetKey("d")) {
   //Code would be here
}

我已经看过了,但我找不到任何可以替换字母串的东西,所以它会感应到按下右箭头按钮。

【问题讨论】:

标签: c# unity3d


【解决方案1】:

有一个 Enum KeyCode 列表。 你需要的是KeyCode.RightArrow

您可以在Unity Docs.NET API documentation 中看到它

【讨论】:

  • 谢谢!其实我之前试过这个,失败了,但我刚才又试了一次,发现了另一个非常小的问题,但是代码破译,就是将错误指向按键输入。
  • @Amethyst 这就是为什么创建minimal reproducible example 的问题非常重要的原因之一。这样做时,您可以排除您所评论的事情发生在您身上
  • @Cleptus +1 供您发表评论。我多次发现问题,在为问题创建minimal reproducible example 的过程中,发现我无法重现,这导致我找到了解决方案(或者至少给了我更多关于问题所在的信息)。
  • @Cleptus “这就是为什么创建问题的最小可重现示例非常重要的原因之一” - 通常对此的正确响应是 “这是一个新问题...请随时发布一个新问题"。 OP 提供的代码对于标题来说绰绰有余
  • @MickyD 确实,但在此答案的评论中,OP 表示他们的问题出在其他地方,但错误消息指向该代码,因此建议创建一个单独的项目来重现该问题相信是相关的。我没有否决或标记这个问题。
【解决方案2】:

查看下面的代码以检测右箭头键被按下。将此代码放入Update()

if (Input.GetKeyDown(KeyCode.RightArrow))
{
    Debug.Log("right Arrow key pressed");
}

如果要使用其他箭头,请使用KeyCode.LeftArrowKeyCode.UpArrowKeyCode.DownArrow

【讨论】:

    【解决方案3】:

    只是想补充一点信息:

    您可以在按键时获得三种类型的事件。

    if (Input.GetKeyDown(KeyCode.RightArrow))
    {
        print("right Arrow key pressed");
    }
    
    if (Input.GetKeyUp(KeyCode.RightArrow))
    {
        print("right Arrow was released");
    }
    if (Input.GetKey(KeyCode.RightArrow))
    {
       print("right Arrow is held down");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-26
      • 2012-07-17
      • 2016-11-11
      • 1970-01-01
      • 2014-09-03
      • 2011-08-01
      相关资源
      最近更新 更多