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*);*
1 Answer
1
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 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