Esempio n. 1
0
    private void RemoveOverSound()
    {
        //如果列表中的个数超过了8个,则先把已经播放完毕的, 全部移除掉
        if (m_AudioList.Count >= 8)
        {
            for (int i = m_AudioList.Count - 1; i >= 0; i--)
            {
                if (Time.time > m_AudioList[i].PlayEndTime)
                {
                    AudioInfo item = m_AudioList[i];
                    m_AudioList.Remove(item);
                    item.Destroy();//重要!
                }
            }
        }

        //如果列表中的个数仍然超过8个,则把最早结束的移除掉,直到少于8个
        while (m_AudioList.Count >= 8)
        {
            AudioInfo item = m_AudioList[0];
            foreach (AudioInfo info2 in m_AudioList)
            {
                if (item.PlayEndTime > info2.PlayEndTime)
                {
                    item = info2;
                }
            }
            m_AudioList.Remove(item);
            item.Destroy();//重要!
        }
    }