- Home /
Play sound at scene change time
I want to play button click sound. At present when player click on play button, I write code for button click sound but in that I have written next scene loading code.
So I can't able to play sound but if I comment my scene change code then it plays button click sound. I have written following code for this purpose so guide me to make this correct.
public void OnInstructionButtonClick()
{
if (DataStorage.RetrieveSound() == Constants.PLAYERPREF_SOUND_ON)
{
persistentObject.GetComponent<SoundManager>().PlayClickSound();
}
Application.LoadLevel(Constants.INSTRUCTION_SCENE);
}
public void PlayClickSound()
{
AudioSource.PlayClipAtPoint(buttonClickClip, Vector3.zero);
}
Answer by Seneral · Oct 07, 2014 at 09:13 AM
Try testing what exactly happens with an Debug.Log after playing the sound. If it works, try delaying the scene switch for several frames using a Couritine, the scene probably switches to fast for the sound to play.
If I put single second delay then it works perfectly. I know that I have to add some short to wait before switching to new scene.
But I want to know, Is this only way to come across this problem?
Try this with an Audio Source Component called SoundSource : SoundSource.clip = SoundClip; SoundSource.Play();
On an object with DontDestroyOnLoad()
Well, I'm not sure whether this would work while loading. If it doesn't you'll probably need Unity Pro for that:(
Your answer
Follow this Question
Related Questions
Play AudioSource Backwards 2 Answers
Almost any object can play a sound. They all need an Audio Source? 1 Answer
Is there a way to create a random Audiosource loop? 2 Answers
Question about audio (AudioSource). My ingame sound doesn't sound like the original audio file? 3 Answers
Only able to play a single sound through AudioSource. 1 Answer