public void PlaySound(bool state, string name, bool loop, AudioClip clip, Vector3 pos) { if (_globalSoundsState) { if (state) { AudioSource source; if (_lib.ContainsKey(name)) { source = _lib[name]; if (!source.gameObject.active) { _lib.Remove(name); PlaySound(state, name, loop, clip, pos); return; } } else { source = AudioSourcePool.GetInstance().GetAudioSource(); source.transform.position = pos; _lib.Add(name, source); } source.clip = clip; source.loop = loop; source.Play(0); } else { if (_lib.ContainsKey(name)) { AudioSource source = _lib[name]; source.Stop(); AudioSourcePool.GetInstance().DestroyAudioSource(source); _lib.Remove(name); } } } }
public void OnSoundVolumeChanged(float value) { AudioSourcePool.GetInstance().SetVolume(value); }
public override void Execute() { AudioSourcePool.GetInstance().Execute(); }