问题描述
在按下大写字母后,我试图在Unity中隐藏文本,但是它不起作用,它在“ while”之前停止。 我是一个相当不称职的程序员,所以有经验的人吗?
private float TurnOffInfoText()
{
bool IsCapsPressed = Input.GetKeyDown(KeyCode.CapsLock);
while (IsCapsPressed == true)
{
EndOfGameText.enabled = false;
}
return 0;
}
解决方法
为什么它甚至返回值?
此外,您的while
循环将完全冻结整个应用程序,甚至冻结Unity编辑器应用程序!在循环内IsCapsPressed
的值永远不会改变!
我看不到从哪里调用您的方法,但是如果到目前为止您从未经历过冻结,那么“幸运的是”到目前为止,密钥永远不会在同一帧中消失。
通常,您宁愿每帧轮询一次输入。简单了解Input.GetKeyDown
的API:
private void Update ()
{
if(Input.GetKeyDown(KeyCode.CapsLock))
{
EndOfGameText.enabled = false;
}
}