Пример #1
0
 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);
         }
     }
 }