2015-09-16 29 views
0

我試圖在統一遊戲(使用c#)中進行遊戲,而我正在嘗試完成的遊戲幾乎與遊戲冒險資本家所做的完全相同。當你點擊其中一家公司時,有一個「冷卻時間」計時器。我把它寫在報價單上,因爲直到計時器結束之後纔拿到錢。我已經看了看其他建議的問題,並已成功地創建下面增量遊戲的冷卻時間定時器

public UnityEngine.UI.Text showCurrency; 
public int money = 0; 
public int moneyPerClick = 1; 
public float timeToCollect = 3.0F; 
private float timeStamp; 
private bool buttonClicked;  

void Start() 
{ 
    timeStamp = Time.time + timeToCollect; 
} 

void Update() 
{ 
    showCurrency.text = "Money: " + money; 
    if(buttonClicked && timeStamp > 0.0F) 
    { 
     timeStamp -= Time.time; 

    } 
    if (timeStamp == 0.0F) 
     { 
      money += moneyPerClick; 
     } 
} 

public bool Clicked() 
{ 
    buttonClicked = true; 
    return buttonClicked;   
} 

代碼我目前得到1個錯誤但開始後,我加入showCurrency.text =「錢:」發生+錢;部分。所以需要修復。

據我所知,代碼無法工作。我沒有使用圖像填充的冷卻效果(這將是另一天的問題)所以我實際上看不到計時器是否倒計時,但我想我可以有一個Debug.Log並有一個system.out行來測試。另一件不起作用的是我沒有獲得新的金額在屏幕上顯示。

這段代碼是一個初學者最好的猜測,它將如何佈局,它是我在哪裏。如果看起來我正在使用錯誤的方法,那可能是因爲我。任何進一步的信息,至少在正確的方向指向我將不勝感激。

+0

有什麼你得到的錯誤?你的計時碼在哪裏? – Enigmativity

+0

我得到的確切的錯誤是NullReferenceException – jon

+0

你的代碼中的'showCurrency'實例化的地方? – Enigmativity

回答

0

Unity的Update()方法每幀調用一次。因此,如果您將遊戲設置爲30 FPS,則Update()將每秒調用30次。

首先,timeStamp -= Time.time從您存儲時間的每一幀中減去當前時間(它實際上是一個非常小的數字)。當你擁有了它,試試if語句改變你的第二個不等式檢查,而不是檢查平等: if (timeStamp <= 0.0F)

或者,你的更新()函數可以簡化爲這樣的事:

void Update() 
    showCurrency.text = "Money: " + getMoney();/*Make money into a property with a getter and setter, so that it will be easily changeable at run-time*/ 
    if(buttonClicked && (Time.time >= timeStamp)) 
    { 
     timeStamp = (Time.time + timeToCollect); 
     setMoney(getMoney() + moneyPerClick); 
     buttonClicked = false; /*Reset your button to be clickable again*/ 
     /*You could also setup your setMoney() like setMoney(moneyPerClick), but that's not what you asked ;b*/ 
    } 
} 
+0

不要將反斜槓放在大塊代碼上,高亮顯示它,並按下工具欄上的「{}」按鈕。 –

+0

但按下該按鈕只是簡單地用反引號包裝光標..? – TheAmazingFedex

+0

我還想知道如果更新方法是最好的方法來做到這一點,或者如果我應該使用FixedUpdate或甚至初始化布爾值,然後使用LateUpdate來運行代碼。或者我應該放棄整個Time.time的想法並切換到使用tick來減少時間? – jon