Multiple audio sources on a single gameObject in unity

Posted by angryInsomniac on Game Development See other posts from Game Development or by angryInsomniac
Published on 2013-10-21T01:08:23Z Indexed on 2013/10/21 4:11 UTC
Read the original article Hit count: 374

Filed under:
|

So, I have an audio system set up wherein I have loaded all my audio clips centrally and play them on demand by passing the requesting audioSource into the sound manager.

However, there is a complication wherein if I want to overlay multiple looping sounds, I need to have multiple audio sources on an object, which is fine , so I created two in my script instantiated them and played my clips on them and then the world went crazy.

For some reason, when I create two audio Sources in an object only the latest one is ever used, even if I explicitly keep objects separated, playing a clip on one or the other plays the clip on the last one that was created, furthermore, either this last one is not created in the right place or somehow messes with the rolloff rules because I can hear it all across my level, havign just one source works fine, but putting a second one on it causes shit to go batshit insane.

Does anyone know the reason / solution for this ?

Some pseudocode :

guardSoundsSource = (AudioSource)gameObject.AddComponent("AudioSource");
guardSoundsSource.name = "Guard_Sounds_source";
// Setup this source 

guardThrusterSource = (AudioSource)gameObject.AddComponent("AudioSource"); 
guardThrusterSource.name = "Guard_Thruster_Source";
// setup this source
   // play using custom Sound manager      
soundMan.soundMgr.playOnSource(guardSoundsSource,"Guard_Idle_loop"
,true,GameManager.Manager.PlayerType);
   // this method prints out the name of the source the sound was to be played on and it always shows "Guard_Thruster_Source" even on the "Guard_Idle_loop" even though I clearly told it to use "Guard_Sounds_source"

© Game Development or respective owner

Related posts about unity

Related posts about audio