// Update our sfx array and remove any sound effects that are done playing.
    void Update()
    {
        // Iterate through our sound effects and see if they are done yet... Then remove them.
        // Don't do this if the sfxstate is paused since the sfx won't be playing.
        if (sfxState != SoundPlayerState.Paused)
        {
            for (int i = sfxSources.Count - 1; i >= 0; i--)
            {
                AudioSourceManager sfx = (AudioSourceManager)sfxSources[i];
                if (sfx.source != null && !sfx.source.isPlaying)
                {
                    sfxSources.Remove(sfx);
                    sfx.Destroy();
                }
            }
        }

        // If the bgm is not on loop and finishes, update bgmState to match
        if (bgmState == SoundPlayerState.Playing && !bgmSource.isPlaying)
        {
            bgmState = SoundPlayerState.Stopped;
        }
    }