2015-01-21 111 views
0

我如何等待if語句?我需要時間讓音頻文件播放。Unity內部如果聲明

void OnTriggerEnter2D(Collider2D other) 
{ 
    if (other.gameObject.tag == "Player") 
    { 
     audio.Play(); 
     // yield return new WaitForSeconds(.5f); 
     gameObject.SetActive(false); 
    } 
} 

回答

0

你可以做一些非常喜歡這個「狡猾」:

void OnTriggerEnter2D(Collider2D other) 
    { 
     if (other.gameObject.tag == "Player") 
     { 
      audio.Play(); 
      float timer = 0; 
      do{timer += Time.deltaTime;}while(timer != 1) 
      gameObject.SetActive(false); 
     } 
    } 

但我會建議你實際上在你的更新循環的東西,如跟蹤您的音頻進度:

if (!audio.isPlaying) { //Audio playing } 

if(audio.time > 1) { //Audio has been playing for more than one second } 

希望這有助於。

忘了鏈接...

audio.isPlaying = http://docs.unity3d.com/ScriptReference/AudioSource-isPlaying.html

audio.time = http://docs.unity3d.com/ScriptReference/AudioSource-time.html

+0

感謝: 「如果(!audio.isPlaying)」 引用當前遊戲對象或所有音頻劑量? fyi我剛開始學習uniy和c#,如果你想看到進展它的@ deathvenomstudios.com – DeathVenom 2015-01-21 04:25:09

+0

它沒有引用所有的音頻。 (我添加了一些鏈接,這可能也有幫助) – Zze 2015-01-21 04:50:13