示例#1
0
        private void PlayDynamicMusic(DynamicMusic music, float crossFadeTime = 0)
        {
            // TODO:
            // Implement cross fading
            if (musicSource.isPlaying)
            {
                musicSource.Stop();
            }

            CurrentMusic = music;

            var intro = music.GetIntro();

            if (intro)
            {
                musicSource2.clip = intro;
                musicSource2.loop = false;
                musicSource2.outputAudioMixerGroup = music.AudioMixer;
                musicSource2.Play();
            }

            var loop = music.GetLoop();

            if (loop)
            {
                musicSource.clip = loop;
                musicSource.outputAudioMixerGroup = music.AudioMixer;
                musicSource.PlayDelayed(intro ? intro.length : 0f);
            }
        }
示例#2
0
        public void PushDynamicMusic(DynamicMusic music, bool restart = false)
        {
            if (!restart && CurrentMusic != null)
            {
                if (CurrentMusic.Equals(music))
                {
                    return;
                }
            }

            PlayDynamicMusic(music);
        }
示例#3
0
        public void PushDynamicMusic(DynamicMusic music, bool restart, float crossFadeTime)
        {
            if (!restart && CurrentMusic != null)
            {
                if (CurrentMusic.Equals(music))
                {
                    return;
                }
            }

            PlayDynamicMusic(music);
        }
 public void PushDynamicMusic(DynamicMusic music)
 {
     GlobalMusicPlayer.Instance.PushDynamicMusic(music, RestartIfSame);
 }