Timer 当我按下空格键时,如何激活计时器

Timer 当我按下空格键时,如何激活计时器,timer,unity3d,unityscript,Timer,Unity3d,Unityscript,当我按空格键时,我的计时器不会像应该的那样启动。它出现在屏幕上,并且不会下降,除非我连续快速按下空格键多次,然后下降一秒钟,这很奇怪 #pragma strict var myTimer : float = 60.0; var fontSize: int = 100; public var guiSkin : GUISkin; var spaceTrue : boolean = false; function Start () { } function Update () { i

当我按空格键时,我的计时器不会像应该的那样启动。它出现在屏幕上,并且不会下降,除非我连续快速按下空格键多次,然后下降一秒钟,这很奇怪

   #pragma strict
var myTimer : float = 60.0;
var fontSize: int = 100;
public var guiSkin : GUISkin;
var spaceTrue : boolean = false;


function Start () {


}

function Update () {
if (Input.GetKeyDown("space")){
        print("space key was pressed");
        spaceTrue = !spaceTrue;
}
if(myTimer > 0 && spaceTrue){
    myTimer -= Time.deltaTime;
    }
}



    //if(myTimer <= 0){
        //Debug.Log("Game Over");






    function OnGUI(){

GUI.skin = guiSkin;
    GUI.Label(new Rect(250,150,50,20),"" + myTimer.ToString("0"));
    //GUI.Label(new Rect(250,150,50,20),"" + myTimer.ToString("0"));
    }

好吧,这样做怎么样

var spaceTrue:bool = false;

Update(){

if (Input.GetKeyDown("space")){
        print("space key was pressed");
        spaceTrue = !spaceTrue;

}

if(myTimer>0 && spaceTrue)
 myTimer-=Time.deltaTime;
}

以另一种方式进行操作似乎玩家必须保持按住或按下按钮,因为更新将在每一帧调用,因此如果玩家没有按下空格按钮,我认为它不会进入那种状态。这样,计时器将检查布尔值。所以,如果spaceTrue为true,则表示玩家按下了按钮。如果他们再次点击makefalse,等

我将布尔值更改为布尔值,因为它无法识别,但仍然不起作用。控制台没有给我任何错误,但在我的场景中它只是一个60。点击空格键只会更改检查器框,因为该变量是公共的。所以我知道它工作了一半,计时器没有启动。我觉得它有时间的奥多。deltaTime和它是如何在场景加载开始时不开始的。你觉得怎么样?哈哈,我成功了。我不知道为什么它以前不起作用,但现在起作用了。我把我在主帖子上的代码更新为工作代码