public void Refresh() { for (int index = 0; index < ((MusicManager)SingletonComponent <MusicManager> .Instance).activeMusicClips.Count; ++index) { MusicTheme.PositionedClip activeMusicClip = ((MusicManager)SingletonComponent <MusicManager> .Instance).activeMusicClips[index]; MusicClipLoader.LoadedAudioClip loadedClip = this.FindLoadedClip(activeMusicClip.musicClip.audioClip); if (loadedClip == null) { MusicClipLoader.LoadedAudioClip loadedAudioClip = (MusicClipLoader.LoadedAudioClip)Pool.Get <MusicClipLoader.LoadedAudioClip>(); loadedAudioClip.clip = activeMusicClip.musicClip.audioClip; loadedAudioClip.unloadTime = (float)(AudioSettings.get_dspTime() + (double)loadedAudioClip.clip.get_length() + 1.0); this.loadedClips.Add(loadedAudioClip); this.loadedClipDict.Add(loadedAudioClip.clip, loadedAudioClip); this.clipsToLoad.Add(loadedAudioClip.clip); } else { loadedClip.unloadTime = (float)(AudioSettings.get_dspTime() + (double)loadedClip.clip.get_length() + 1.0); this.clipsToUnload.Remove(loadedClip.clip); } } for (int index = this.loadedClips.Count - 1; index >= 0; --index) { MusicClipLoader.LoadedAudioClip loadedClip = this.loadedClips[index]; if (AudioSettings.get_dspTime() > (double)loadedClip.unloadTime) { this.clipsToUnload.Add(loadedClip.clip); this.loadedClips.Remove(loadedClip); this.loadedClipDict.Remove(loadedClip.clip); // ISSUE: cast to a reference type Pool.Free <MusicClipLoader.LoadedAudioClip>((M0&)ref loadedClip); } } }
public void Refresh() { for (int i = 0; i < SingletonComponent <MusicManager> .Instance.activeMusicClips.Count; i++) { MusicTheme.PositionedClip item = SingletonComponent <MusicManager> .Instance.activeMusicClips[i]; MusicClipLoader.LoadedAudioClip loadedAudioClip = this.FindLoadedClip(item.musicClip.audioClip); if (loadedAudioClip != null) { loadedAudioClip.unloadTime = (float)UnityEngine.AudioSettings.dspTime + loadedAudioClip.clip.length + 1f; this.clipsToUnload.Remove(loadedAudioClip.clip); } else { loadedAudioClip = Pool.Get <MusicClipLoader.LoadedAudioClip>(); loadedAudioClip.clip = item.musicClip.audioClip; loadedAudioClip.unloadTime = (float)UnityEngine.AudioSettings.dspTime + loadedAudioClip.clip.length + 1f; this.loadedClips.Add(loadedAudioClip); this.loadedClipDict.Add(loadedAudioClip.clip, loadedAudioClip); this.clipsToLoad.Add(loadedAudioClip.clip); } } for (int j = this.loadedClips.Count - 1; j >= 0; j--) { MusicClipLoader.LoadedAudioClip item1 = this.loadedClips[j]; if (UnityEngine.AudioSettings.dspTime > (double)item1.unloadTime) { this.clipsToUnload.Add(item1.clip); this.loadedClips.Remove(item1); this.loadedClipDict.Remove(item1.clip); Pool.Free <MusicClipLoader.LoadedAudioClip>(ref item1); } } }