One Audiosource catchy/lagging, two working
Hi,
I've got an Audiosource with a single clip. It's only going to be triggered five times throughout the whole game, so I've set the sound settings to Compressed In Memory and ADPCM. Loop and Play on Awake are both unticked. Developing for Android.
I've declared an Audiosource named "zap" in the top of the class. However, when I try to play it through the code below, the sound seems to get stuck on the first couple of keys, and only completes as I press to exit playmode.
void Update () {
if (totemGreen.activeSelf== false)
{
totem.Play ();
totemTailGreen.gameObject.SetActive (true); }
I've had a quick look around in the forums, but I can't find something resolved that matches this problem. The idea is that when the player collides with one object, that object is set to inactive, triggering a different object to be activated and a sound to play once.
I tried playing it through a coroutine instead, as this works for my other audiosources, but it didn't really make a difference.
I also tried deleting the gameobject with the Audiosource and created a new one from a duplication of one that works, but nada.
Any idea what I'm doing wrong, or suggestions on how to get it working?
Appreciate all the help I can get! :) - Benita
Here's some extra info, not sure if it's helpful or not:
This code works like a charm:
public IEnumerator Heal(){
coralHeal.Play ();
yield return new WaitForSeconds (1);
animator.SetTrigger ("heal");
yield return new WaitForSeconds (2);
coralCollider.isTrigger = true;
dead = false;
}
Again, the Audiosource is declared at the top of the class.
This code, however, works perfectly until I add Audiosource.Play:
public IEnumerator ZapAnimation(){
bubble.Play ();
yield return new WaitForSeconds (1);
animatorOil.SetTrigger ("burst");
yield return new WaitForSeconds (1);
Destroy (oilBubObj);
}
Answer by M-Hanssen · Jun 27, 2016 at 02:14 PM
This may be too easy, but are you sure you're not constantly hitting the totem.Play ();
?
I don't know your full code, but it seems like you're either checking or setting the wrong value in your if statement.
Could it be that this fixes your first problem?
void Update ()
{
if (totemTailGreen.gameObject.activeSelf == false)
{
totem.Play ();
totemTailGreen.gameObject.SetActive (true);
}
}
Ah, I'm an idiot. It was constantly trying to start the Audiosource like you said. Had to move it outside of the Update function.
Thanks so much.
Your answer
Follow this Question
Related Questions
How can I check if a Bluetooth headset is connected on Android? 1 Answer
How to play ambisonic sound files on android 1 Answer
The microphone.start() function doesn't work in Android platform 0 Answers
Audio not playing when destroying a GameObject. 1 Answer
How to prevent the audio clip from playing louder? 0 Answers