Input.KeyDown 函数未检测到按下的键

Input.KeyDown function doesn't detect the key pressed

提问人:Andrius Capas 提问时间:7/17/2023 最后编辑:derHugoAndrius Capas 更新时间:7/17/2023 访问量:69

问:

void Update()
{
    Debug.Log("going here");

    if (Input.GetKeyDown(KeyCode.T))
    {
        Debug.Log("Letter T pressed");
    }
}

该代码仅打印“going here”。当我按 T 时,没有任何反应 项目设置 -> Player -> ActiveInputHandeling* 在两者中都设置了。 脚本将附加到对象。 我尝试在不同的项目中这样做,它有效。

C# Unity-Game-Engine 输入 键盘

评论

0赞 BugFinder 7/17/2023
重新启动 unity。再试一次。如果你搞砸了输入,你需要重新启动
0赞 derHugo 7/17/2023
@dodexahedron为什么要编辑错别字呢?你怎么知道它实际上不存在于 OP 代码中?
0赞 TheNomad 7/18/2023
您是否更改了输入系统以使用新输入系统?如果是这样,将不会接收事件。Input
0赞 dodexahedron 7/19/2023
@derHugo,因为如果没有它,它实际上是一个编译错误,所以可以肯定的是,它不在他们的代码中,因为 C# 编译器会告诉你你缺少分号。OP 的应用程序运行,因此确认分号不是问题。不?还是动态编译并吞下编译错误?
1赞 derHugo 7/19/2023
@dodexahedron这是一个明显的暗示,尽管这里的 OP 代码可能无法 100% 反映他们正在使用的实际代码。这次没什么大不了的,但总的来说,与其直接编辑它,我宁愿问 OP 并等到他们自己更正他们发布的代码,或者至少确认这只是这里的一个错别字;)

答:

0赞 JunJ 7/17/2023 #1

我想之后 Debug.Log(“按下字母 T”) 您需要添加 ;

在Unity中,如果问题不大,它们只会显示错误代码,但它仍然可以在没有问题代码的情况下工作。

评论

0赞 Community 7/21/2023
正如目前所写的那样,你的答案尚不清楚。请编辑以添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以在帮助中心找到有关如何写出好答案的更多信息。
1赞 Andrius Capas 7/17/2023 #2

我不得不用鼠标点击游戏屏幕,这样它才能开始工作。

评论

0赞 Community 7/20/2023
您的答案可以通过其他支持信息进行改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。
0赞 wenbingeng-MSFT 9/21/2023
您可以编辑并标记此答案,以便它可以帮助更多人
2赞 Smallw00d 7/17/2023 #3

查看您问题的陈述原因

请注意,为了避免将来出现类似问题,您可以通过将配置更改为如下所示来确保您始终处于游戏视图(按下播放按钮时):Play Focused

enter image description here

评论

1赞 Andrius Capas 7/17/2023
是的,没错,谢谢
0赞 dodexahedron 7/20/2023
请将此标记为已接受的答案,以便将问题标记为 SO 已回答。:)