Example #1
0
    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();
        }
    }