2014-09-29 24 views
0

当我按空格键时,我的计时器没有激活,就像它应该那样。它出现在屏幕上,除非我连续多次按空格键,否则它不会下降,然后下降一秒,这很奇怪。当我按下空格键时,如何让我的计时器激活

#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")); 
    } 

回答

0

好了怎么做这个

var spaceTrue:bool = false; 

Update(){ 

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

} 

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

做它的其他方式似乎是玩家要继续保持或按下按钮,因为更新将被称为每一帧,所以如果玩家没有按下空格按钮,它不会进入这种状态,我想。这样Timer就会检查布尔值。所以如果spaceTrue是真的,那就意味着玩家按下按钮。如果他们再次打虚假等

+0

我改变了布尔,布尔因为它不认识它,但它仍然无法正常工作。控制台不给我任何错误,但它只是我的场景中的60。因为变量是公开的,所以只能打开空格键才能更改检查器框。所以我知道这是一半的工作,计时器刚刚开始。我觉得它与Time.deltaTime有关,以及它在场景加载开始时是如何开始的。你怎么看? – ShowmenTv 2014-09-29 20:10:14

+0

哈哈我得到它的工作。我不知道为什么它没有工作之前,但现在它确实。我更新了我的主要帖子上的代码到工作人员 – ShowmenTv 2014-09-30 00:00:51

+0

@ShowmenTv很高兴看到它的工作 – Rika 2014-09-30 13:19:36

相关问题