2016-09-18 69 views
1

我目前正在研究一個具有精靈效果的遊戲。玩家有能力在一段時間內改變他們的「冰刀」。 2秒後,我希望效果恢復到正常的「冰刀」。因此,我需要Unity中的一個定時器。我嘗試了相當一段時間,不能完成這項工作。計時器不會改變精靈

這裏是我的示例代碼:

if  (other.gameObject.CompareTag("IcePickup")) 
{ 
     Destroy(other.gameObject); 
     timer -= Time.deltaTime; 
     timer ++; 
     Blade1 = GameObject.Find("Blade1"); 
     Blade1.gameObject.GetComponent<SpriteRenderer>().sprite = IceBlade; 
     if (Blade1.gameObject.GetComponent<SpriteRenderer>().sprite = IceBlade) 
    { 
//i put a timer here but i cant figure out why is isnt working and print isnt showing. 
     if (timer > 2) 
     { 
      Blade1.gameObject.GetComponent<SpriteRenderer>().sprite = BladeNormal; 
      print("working"); 
     } 
    } 

} 

回答

0

檢查,如果他們是平等的,你應該寫這樣的

if (Blade1.gameObject.GetComponent<SpriteRenderer>().sprite == IceBlade) 

timer -= Time.deltaTime; 

只會發生一次,當other.gameObject.CompareTag("IcePickup")是真的 和這裏

timer -= Time.deltaTime; 
     timer ++; 

你降低定時器的值,同時增加它

所以這顯然不是一個計時器。做一個計時器timer -= Time.deltaTime;必須Update被稱爲是能算,也可以使用coroutinesherehere是實現雙向

+0

OK揭掉,但計時器仍然不起作用 –