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();//重要! } }