using System.Collections; using System.Collections.Generic; using UnityEngine; namespace TBTK{ public class AudioManager : MonoBehaviour { public int audioSourceCount=10; private List audioSourceList=new List(); private static AudioManager instance; public void Awake(){ if(instance!=null) return; instance=this; CreateAudioSource(); } void CreateAudioSource(){ audioSourceList=new List(); for(int i=0; i(); src.playOnAwake=false; src.loop=false; src.volume=1; //src.spatialBlend=.75f; obj.transform.parent=transform; obj.transform.localPosition=Vector3.zero; audioSourceList.Add(src); } } //call to play a specific clip public static void PlaySound(AudioClip clip, Vector3 pos=default(Vector3)){ if(instance!=null) instance._PlaySound(clip, pos); } public void _PlaySound(AudioClip clip, Vector3 pos=default(Vector3)){ if(clip==null) return; int Idx=GetUnusedAudioSourceIdx(); audioSourceList[Idx].transform.position=pos; audioSourceList[Idx].clip=clip; audioSourceList[Idx].Play(); } //check for the next free, unused audioObject private int GetUnusedAudioSourceIdx(){ for(int i=0; i