public void PlaySound(Sfx sfx, float pitchScale = 1.0f) { if (sfx.HasClip) { AudioSource audio = null; if (_unusedAudio.Count > 0) { audio = _unusedAudio.Dequeue(); audio.gameObject.SetActive(true); } else { audio = Instantiate(_audioPrefab); } sfx.Fill(audio); audio.pitch = Mathf.Clamp(audio.pitch * pitchScale, -3.0f, 3.0f); audio.Play(); } }