/// <summary>
    /// Initializes the audio manager
    /// </summary>
    /// <param name="soundSource">audio source</param>
    public static void Initialize(GameAudioSource source)
    {
        initialized     = true;
        gameAudioSource = source;

        // Load resources, using filenames in AudioClipNames enum

        foreach (AudioClipName clip in AudioClipName.GetValues(typeof(AudioClipName)))
        {
            if (!clip.ToString().StartsWith("Music_"))
            {
                soundClips.Add(clip, Resources.Load <AudioClip>(@"Audio\Sound\" + clip.ToString()));
                //Debug.Log("Loaded: " + clip.ToString());
            }
            else
            {
                // Most music clips include a starter (intro) clip and a looped clip
                musicStartClips.Add(clip, Resources.Load <AudioClip>(@"Audio\Music\" + clip.ToString() + "_start"));
                //Debug.Log("Loaded: " + clip.ToString() + "_start");

                musicLoopClips.Add(clip, Resources.Load <AudioClip>(@"Audio\Music\" + clip.ToString() + "_loop"));
                //Debug.Log("Loaded: " + clip.ToString() + "_loop");
            }
        }

        // Load Player Volume Preferences
        if (PlayerPrefs.HasKey(PlayerPrefsKeys.SoundVolume.ToString()))
        {
            soundVolume = PlayerPrefs.GetFloat(PlayerPrefsKeys.SoundVolume.ToString());
        }
        if (PlayerPrefs.HasKey(PlayerPrefsKeys.MusicVolume.ToString()))
        {
            musicVolume = PlayerPrefs.GetFloat(PlayerPrefsKeys.MusicVolume.ToString());
        }
        gameAudioSource.SetSoundVolume(soundVolume);
        gameAudioSource.SetMusicVolume(musicVolume);
    }
 public static void SetMusicVolume(float percent)
 {
     percent     = percent == 0.001f ? 0f : percent;
     musicVolume = percent;
     gameAudioSource.SetMusicVolume(percent);
 }