2014-09-29 62 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

相關問題