2013-05-15 64 views
0

我正在編程賽車遊戲。 你可以破壞你的對手,我想計算你破壞的敵人。 我這樣做是這樣:在Unity3D中算死死敵

if(Wrecked){ 
    Smoke.Emit(); 
    EngineTorque = 0; 
    PlayerCar_Script.EnemyWrecked += 1; 
} 

我想你可以看到我的問題。它不會只計算1它會計數無窮無盡...... 我該如何解決這個問題?我也試過SendMessage函數,但在同一個問題結束:/

+0

我從你在'Update'或'FixedUpdate'方法運行上面的代碼,你的問題的猜測? –

回答

2

它不會只算1漲它就會算無盡

這聽起來像你重複運行上面的代碼,但不會在每次運行之間將PlayerCar_Script.EnemyWrecked設回0。我猜你在汽車的monobehavior.update()函數中有這個。相反,只有當你從沒有被擊毀到破壞時纔會增加EnemyWrecked。

爲每輛可摧毀的汽車使用一個變量,以確定它是否在上次檢查時被破壞。

bool wasWreckedLastFrame = false; 

,然後改變你上面的代碼段這樣的:

if(Wrecked && wasWreckedLastFrame==false){ 
    wasWreckedLastFrame = true; 
    Smoke.Emit(); 
    EngineTorque = 0; 
    PlayerCar_Script.EnemyWrecked += 1; 
}