how to play multiple looping sounds from the same object?

I have an object that I’d like to play several different looping sounds from. I’ve added two Audio Source components to the object, I’ve checked “Loop” in the inspector, and I’m doing this in the script:

audio.clip = BounceLoop;
audio.Play();
    
yield WaitForSeconds (5);
   
audio.clip = RollSound;
audio.Play();

This issue I’m having is that in some instances, I may want both sounds to be playing simultaneously but switching the clip and using audio.Play() doesn’t allow for that. Is there another way to play a looping sound from script? All audio.loop = true does is set a clip to be looping.

Any ideas? I’m stuck!

Using Component.audio only returns one of your two audioSources! Instead, make an array of AudioSource objects, and assign them manually in the inspector, and then iterate through the array and do the same operation on each of them whenever you want to change something. Using the automatic component lookup assumes that you will only ever have one of each kind of component on your gameobjects, which in this case is obviously not true!

To play at same time use audio.PlayOneShot()