Beispiel #1
0
        private void Awake()
        {
            _carDodgeEventListener.OnEventHappend     += OnCarDodge;
            _carCollisionEventListener.OnEventHappend += OnCarCollision;

            SetVolume(_volume.value);
            _currentPlayer = _menuMusicPlayer;
            _menuMusicPlayer.Play();
        }
        private IEnumerator FadeMusicTo(AudioSourcePlayer to)
        {
            if (_currentPlayer == null)
            {
                yield return(StartCoroutine(FadeMusicIn(to)));

                yield break;
            }

            yield return(StartCoroutine(FadeMusicOut(_currentPlayer)));

            StartCoroutine(FadeMusicIn(to));
        }
        private IEnumerator FadeMusicOut(AudioSourcePlayer to)
        {
            var timer        = 0f;
            var halfFadeTime = _fadeTime / 2f;

            while (timer < halfFadeTime)
            {
                timer += Time.deltaTime;
                var volume = Mathf.Lerp(_volume.value, 0f, timer / halfFadeTime);
                to.SetVolume(volume);
                yield return(null);
            }
            to.Stop();
        }
        private IEnumerator FadeMusicIn(AudioSourcePlayer to)
        {
            if (!to.IsPlaying)
            {
                to.Play();
            }
            if (_currentPlayer == to)
            {
                yield break;
            }
            _currentPlayer = to;

            var timer        = 0f;
            var halfFadeTime = _fadeTime / 2f;

            while (timer < halfFadeTime)
            {
                timer += Time.deltaTime;
                var volume = Mathf.Lerp(0f, _volume.value, timer / halfFadeTime);
                to.SetVolume(volume);
                yield return(null);
            }
        }