public bool PopAudioClip()
    {
        AudioClip TargetClip = m_ClipList[m_ClipList.Count - 1];

        if (AudioClipGroup.IsPlayingClip(TargetClip))
        {
            return(false);
        }

        SoundManager.Instance.m_Storage.GiveupAudioClip(TargetClip);
        m_ClipList.Remove(TargetClip);

        PrintLog();
        return(true);
    }
    public void Collect()
    {
        if (m_ClipList.Count > m_nCacheCount)
        {
            if (m_ClipList.Count > 0)
            {
                for (int i = m_ClipList.Count - 1; i > 0; i--)
                {
                    AudioClip TargetClip = m_ClipList[i];
                    if (!AudioClipGroup.IsPlayingClip(TargetClip))
                    {
                        SoundManager.Instance.m_Storage.GiveupAudioClip(TargetClip);
                        m_ClipList.Remove(TargetClip);
                        TargetClip = null;
                    }

                    if (m_ClipList.Count <= m_nCacheCount)
                    {
                        break;
                    }
                }
            }
        }
    }