按键后如何执行动作?

问题描述

在按下大写字母后,我试图在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;
    }      
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...