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);
		}
	}

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.