Ejemplo n.º 1
0
    //Update
    private void Update()
    {
        if (_newClip != null)
        {
            if (!_audioSource.isPlaying || _audioSource.volume == 0f)
            {
                _audioSource.clip = _newClip.audioClip;
                _currentClip      = _newClip;
                _desiredVolume    = GameConfiguration.Instance.GetBGMVolume() * _baseVolumeFactor * _currentClip.volumeFactor;
                _newClip          = null;

                if (!_audioSource.isPlaying)
                {
                    _audioSource.volume = _desiredVolume;
                    _audioSource.Play();
                }
            }
            else if (_audioSource.volume > 0f)
            {
                _audioSource.volume = Mathf.Max(_audioSource.volume - (_volumeFadeFactor * Time.deltaTime), 0f);
            }
        }
        else if (_audioSource.volume != _desiredVolume)
        {
            if (_audioSource.volume > _desiredVolume)
            {
                _audioSource.volume = Mathf.Max(_audioSource.volume - (_volumeFadeFactor * Time.deltaTime), _desiredVolume);
            }
            else
            {
                _audioSource.volume = Mathf.Min(_audioSource.volume + (_volumeFadeFactor * Time.deltaTime), _desiredVolume);
            }
        }
    }
Ejemplo n.º 2
0
 //Play BGM
 private void PlayBGM(string trigger)
 {
     foreach (BGMAudioInfo tmp in _BGMClips)
     {
         if (tmp.trigger.Equals(trigger))
         {
             if (_audioSource.clip == tmp.audioClip)
             {
                 return;                                     //Already playing
             }
             else
             {
                 _newClip = tmp;
                 return;
             }
         }
     }
 }