Beispiel #1
0
        private void playBGMDefaultAdvance(string audioSource, string musicName, AudioLoop.LoopType loopType, float start, float end)
        {
            var                audioSourceData = audioSources.GetAudio(audioSource);
            AudioSource        audio           = audioSourceData.audio;
            AudioLoopCallbacks callback        = audioSourceData.callback;

            ClipDetail clipDetail = audioLibrary.GetBGMClip(musicName);

            if (!audio)
            {
                var source = setNewAudioSource(audioSource, true);
                audio    = source.audio;
                callback = source.callback;
            }

            if (audio.isPlaying)
            {
                stopBGMPlayed(audio, clipDetail, callback, true);
            }

            audio.loop   = true;
            audio.clip   = clipDetail.clip;
            audio.volume = globalBGMVolume * clipDetail.localVolume;
            audioLoopFunction.SetAudioSource(ref audio, ref callback);
            audioLoopFunction.PlayLoops(loopType, start, end);
        }
Beispiel #2
0
        private void playBGMTransitionAdvance(string audioSource, string musicName, AudioLoop.LoopType loopType, float start, float end)
        {
            var                audioSourceData = audioSources.GetAudio(audioSource);
            AudioSource        audio           = audioSourceData.audio;
            AudioLoopCallbacks callback        = audioSourceData.callback;

            if (!audio)
            {
                var source = setNewAudioSource(audioSource, true);
                audio    = source.audio;
                callback = source.callback;
            }

            if (audio.isPlaying)
            {
                ClipDetail clipDetail = audioLibrary.GetBGMClip(audio.clip);
                DOVirtual.Float(1, 0, timeFade, (x) =>
                {
                    audio.volume = globalBGMVolume * clipDetail.localVolume * x;
                }).OnComplete(() => playBGMInTransitionAdvance(audio, musicName, loopType, start, end));
            }
            else
            {
                playBGMInTransitionAdvance(audio, musicName, loopType, start, end);
            }
        }
Beispiel #3
0
        private void playBGMInTransitionAdvance(AudioSource audio, string musicName, AudioLoop.LoopType loopType, float start, float end)
        {
            ClipDetail clipDetail = audioLibrary.GetBGMClip(musicName);

            audio.loop   = true;
            audio.clip   = clipDetail.clip;
            audio.volume = 0;
            audio.Play();
            DOVirtual.Float(0, 1, timeFade, (x) =>
            {
                audio.volume = globalBGMVolume * clipDetail.localVolume * x;
            });
        }
Beispiel #4
0
        private void playBGMAdvance(string audioSource, string musicName, AudioLoop.LoopType loopType, float start, float end, PlayType playType)
        {
            switch (playType)
            {
            case PlayType.TRANSITION:
                playBGMTransitionAdvance(audioSource, musicName, loopType, start, end);
                break;

            case PlayType.DEFAULT:
                playBGMDefaultAdvance(audioSource, musicName, loopType, start, end);
                break;
            }
        }
Beispiel #5
0
 public static void PlayBGMAdvanced(string audioSource, string musicName, AudioLoop.LoopType loopType, float start, float end, PlayType playType = PlayType.TRANSITION)
 {
     Instance?.playBGMAdvance(audioSource, musicName, loopType, start, end, playType);
 }