【问题标题】:Why is Input.GetKeyDown returning an error?为什么 Input.GetKeyDown 返回错误?
【发布时间】:2021-07-01 10:01:54
【问题描述】:

我正在尝试输入玩家是否按下向下箭头,但当我执行诸如 Input.GetKeyInput.GetKeyDownInput.GetKeyUp 之类的操作时,它会返回错误。这是我的代码:

void Update()
    {
        if(Input.GetKeyDown(KeyCode.DownArrow))
        {
            if (touchingDown == true)
            {

            }
        }
    }

Image of error

【问题讨论】:

  • 欢迎使用 stackoverflow。我推荐taking the tour,以及阅读how to ask a good questionwhat's on topic。第一条线索:当您遇到错误时,非常在您的问题中包含所述错误。
  • ... 并将该错误包含为 text 而不是屏幕截图。错误消息本质上是文本,所以将其显示为文本。
  • 如果您将鼠标悬停在Input 上,它会显示什么类型?如果您有一个名为Input 的属性,那可能就是问题所在。 (您可以将其完全限定为 UnityEngine.Input。)
  • 图片已附加到帖子中

标签: c# visual-studio unity3d


【解决方案1】:

您很可能是从错误的位置导入“输入”类。 删除所有可疑的导入。 Unity 的输入只需要这个:

using UnityEngine;

【讨论】:

  • 我只导入了 Unity Engine、System Collections 和 System Collections Generic。
  • 尝试一个新文件并准确添加此处的示例代码以查看是否有效:docs.unity3d.com/ScriptReference/Input.GetKeyDown.html 如果有效,请与您的文件进行准确比较。请记住,文件名必须是类的名称,因此是“ExampleClass”。
【解决方案2】:

如果您想在按住键的同时不断地做某事,您可以使用 Input.GetKey 函数。如果您想在按键上执行一次操作,您可以使用 Input.GetKeyDown 函数,因为它只会评估一次为真,直到按键被释放并再次按下。了解两者之间的区别很重要。最后,您应该始终检查 Update 函数中的输入

【讨论】:

  • 我知道这一切,在我展示的代码中,它实际上是在更新函数内部。我的问题是写“GetKeyDown”会返回错误。
  • WinForms 项目在 Unity 中的相关性如何?
猜你喜欢
  • 2014-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多