Exemple #1
0
        private static void LogoAnimationPrefix()
        {
            if (TrackConfigManager.trackConfig == null)
            {
                return;
            }

            Dictionary <string, TrackConfig> trackList = TrackConfigManager.trackConfig.trackList;

            if (trackList == null || !trackList.ContainsKey(TitleScreenTrack))
            {
                return;
            }

            TrackConfig track = trackList[TitleScreenTrack];

            if (track == null || string.IsNullOrEmpty(track.filePath))
            {
                return;
            }

            AudioClip clip = TrackLoadingUtils.LoadMusicTrackNow(track);

            if (clip != null && AudioHandler.audioHandler != null)
            {
                AudioHandler.audioHandler.musicTrackRealList[23] = clip;
                AudioHandler.audioHandler.gc.sessionDataBig.musicTrackDic[TitleScreenTrack] = clip;
            }
        }
Exemple #2
0
        private static void MusicLoad(AudioHandler audioHandler)
        {
            foreach ((string key, TrackConfig config) in trackAdditionQueue)
            {
                TrackConfigManager.instance.StartCoroutine(
                    TrackLoadingUtils.LoadMusicTrack(
                        config,
                        clip => OnTrackLoaded(audioHandler, key, clip))
                    );
            }
            trackAdditionQueue.Clear();

            foreach ((string key, TrackConfig config) in trackChangedQueue)
            {
                TrackConfigManager.instance.StartCoroutine(
                    TrackLoadingUtils.LoadMusicTrack(
                        config,
                        clip => OnTrackLoaded(audioHandler, key, clip))
                    );
            }
            trackChangedQueue.Clear();

            foreach ((string trackName, AudioClip clip) in clipAdditionQueue)
            {
                OnTrackLoaded(audioHandler, trackName, clip);
            }
            clipAdditionQueue.Clear();

            foreach (CustomMusicLoadSpec customMusicLoadSpec in customMusicAdditionQueue)
            {
                Debug.Log("Starting load for new custom track: " + customMusicLoadSpec);
                Action <CustomMusicLoadSpec, AudioClip> previousCallback = customMusicLoadSpec.callback;
                customMusicLoadSpec.callback = (loadSpec, clip) => {
                    previousCallback?.Invoke(loadSpec, clip);
                    OnTrackLoaded(audioHandler, loadSpec.GetDisplayName(), clip);
                };
                TrackConfigManager.instance.StartCoroutine(TrackLoadingUtils.LoadMusicTrack(customMusicLoadSpec));
            }
            customMusicAdditionQueue.Clear();

            foreach (CustomMusicLoadSpec customMusicLoadSpec in customMusicChangedQueue)
            {
                Debug.Log("Starting load for changed custom track: " + customMusicLoadSpec);
                Action <CustomMusicLoadSpec, AudioClip> previousCallback = customMusicLoadSpec.callback;
                customMusicLoadSpec.callback = (loadSpec, clip) => {
                    previousCallback?.Invoke(loadSpec, clip);
                    OnTrackLoaded(audioHandler, loadSpec.GetDisplayName(), clip);
                };
                TrackConfigManager.instance.StartCoroutine(TrackLoadingUtils.LoadMusicTrack(customMusicLoadSpec));
            }
            customMusicChangedQueue.Clear();

            RunTitleScreenFix();
        }
 /// <summary>
 /// Loads an mp3 file as a wav AudioClip (Unity disallows "streaming" of mp3 music)
 /// </summary>
 ///
 /// <param name="mp3Data">
 /// The content of the file as a byte[]
 /// </param>
 ///
 /// <returns>
 /// An AudioClip that can be played at will in-game.
 /// </returns>
 public static AudioClip Mp3ToWavClip(byte[] mp3Data)
 {
     return(TrackLoadingUtils.Mp3ToWavClip("mp3ToWav.wav", mp3Data));
 }