AudioSourceItem GetAudioSourceItem() { AudioSourceItem item = null; for (var i = 0; i < itemList.Count; i++) { if (itemList[i].cd < Time.time) { item = itemList[i]; break; } } if (item == null && itemList.Count < maxNum) { item = new AudioSourceItem(go, mixerGroup); itemList.Add(item); } return(item); }
public void PlaySound(uint id, AudioClip clip) { if (Time.time < cd) { AudioManager.Instance.DestroySFX(id); return; } AudioSourceItem item = GetAudioSourceItem(); if (item == null) { AudioManager.Instance.DestroySFX(id); return; } cd = Time.time + Interval; item.Play(clip, id); AudioManager.Instance.DestroySFX(id, clip.length); }