- Home /
Audio won't play during for loop
I am trying to write a script that displays all the bonuses the player has just earned one by one, two per second, with a sound effect triggered every time a new bonus is revealed. Instead, the script plays no sound at all while the bonuses are being revealed and then plays the sound effect once when all the bonuses disappear. I have no idea why this is happening. Here's the code:
 public AudioSource bonus;
 void ShowBonuses(){ //called repeatedly from OnGUI
         int startX = Screen.width/2 - 200;
         int startY = Screen.height - 200;
         
         if(Time.time - scoredAt < 4){ //sound finally plays when this evals false
             for(int i = 0; i < scoreTexts.Length; i++){
                 if(Time.time - scoredAt >= (float)i/2){ // bonuses appear 1 by 1.
                     GUI.Label(new Rect(startX, startY, 100, 50), scoreTexts[i]);
                     startY -= 50;
                     bonus.Play(); //doesn't play!
                 }
             }
         }
     }
any help would be greatly appreciated.
- Cory 
Answer by Chronos-L · Apr 04, 2013 at 11:08 AM
I setup a scene using this code:
 using UnityEngine;
 using System.Collections;
 
 public class UIAudio : MonoBehaviour {
 
     public AudioSource bonus;
      public float scoredAt = 0;
     
     public string[] scoreTexts;
     void OnGUI() {
         ShowBonuses();    
     }
     
     void ShowBonuses(){ //called repeatedly from OnGUI
         int startX = Screen.width/2 - 200;
         int startY = Screen.height - 200;
         
         if(Time.time - scoredAt < 4){ //sound finally plays when this evals false
             for(int i = 0; i < scoreTexts.Length; i++){
                 if(Time.time - scoredAt >= (float)i/2){ // bonuses appear 1 by 1.
                     GUI.Label(new Rect(startX, startY, 100, 50), scoreTexts[i]);
                     startY -= 50;
                     bonus.Play(); //doesn't play!
                 }
             }
         }
     }
 }
 
 
I heard it play, then after a short while, it just keep on playing. I can heard it clearly. Make sure you do all of the following (For #4 or #5, you can do either one of them):
- Assign the bonus audioSource 
- The audioSource has a audio clip assigned to it 
- Make sure that the bonus-audioSource->volume is not 0 
- Make sure your camera has a audio listener (this is the default) or you have one audio listener attached to a character 
- If the clip is a 3D sound, make sure that your audiolistener (most probably your camera) is in range of the audio-source 's volume zone (it is drawn in a light-blue color), 
- If the clip is a 3D sound, increase the audio-source volume zone ( 3D sounds setting -> Min Distance ) until your audio listener is within range 
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                