- Home /
audio not playing when i destroy gameobject or setactive to false,audio not playing when i destroy gameobject or setactive into false
i have this problem with the audio not playing when i destroy the gameobject or setactive into false in the OnTriggerEnter class, because i think the object is destroyed so fast that the audio has no time to play itself, what can i do to solve this?
here is the code:
void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "Player")
{
audio.Play();
coinCounter.coinCount++;
//gameObject.SetActive(false);
//Destroy(gameObject);
}
}
,i have this problem when i set the gameobject.setactive into false or destroy a gameobject in OnTriggerEnter function the audio won't play but when i comment these codes out the audio will work. because i think the object is being destroyed or set into false so fast the audio won't have time to play itself anymore what can i do about this?
here is the code:
void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "Player")
{
audio.Play();
coinCounter.coinCount++;
//gameObject.SetActive(false);
//Destroy(gameObject);
}
}
put your audio controller on a different object so it isnt destroyed when you destroy/disable the gameobject it is on
Alternatively you could disable the objects renderer and wait for the audio clip to finish playing
Answer by KiraSensei · Aug 22, 2014 at 04:55 PM
There are several possibilities :
You can wait the end of the sound to destroy or deactivate your game object with
yield WaitForSeconds(...)
You can attach the sound to another game object that will always stay there, and when you enter the trigger, you access the other game object and play its sound.
I'm sure there are others but I think the two easy ones are these ones.
Your answer
Follow this Question
Related Questions
Texture2d.Readpixel slow down performance while stand-alone exe is minimize 0 Answers
Fade in Fade out in unity 1 Answer
Hide the ImageTraget in Real world 0 Answers
[HELP] BCE0022: Cannot convert 'UnityEngine.Vector3' to 'UnityEngine.GameObject'. 1 Answer
Trying to drag an object with touch using Rigidbody2D.MovePosition 1 Answer