Beispiel #1
0
        private IEnumerator playDelayedLoop(MusicClipName clipName, float delayedTime)
        {
            yield return(new WaitForSeconds(delayedTime));

            Play(clipName);
            _musicSource.loop = true;
        }
 /// <summary>
 /// Changes the music audio to the relevant clips and plays.
 /// </summary>
 /// <param name="clipName"> The musicclipname that has the audio to be played.</param>
 public void PlayMusic(MusicClipName clipName)
 {
     ChangeMusic(clipName);
     _musicAudioSource.Play();
     if (_musicAuxAudioSource.clip)
     {
         _musicAuxAudioSource.Play();
     }
 }
Beispiel #3
0
        public AudioClip Get(MusicClipName musicClipName)
        {
            initializeDictionaryIfNeeded();

            if (_clipsDictionary.TryGetValue(musicClipName, out var clip))
            {
                return(clip);
            }

            Debug.LogError($"Clip with name {musicClipName} doesn't exist, check it on Music Configuration");
            return(null);
        }
Beispiel #4
0
        public void Play(MusicClipName clipName, bool loop = false, Action onFinished = null)
        {
            var clip = _configuration.Get(clipName);

            _musicSource.clip = clip;
            _musicSource.loop = loop;
            _musicSource.Play();
            if (onFinished != null)
            {
                StartCoroutine(invokeDelayed(onFinished, clip.length));
            }
        }
 private void ChangeMusic(MusicClipName clipName)
 {
     AudioClip[] musicPair = _audioClipManager.GetMusicClipPair(clipName);
     _musicAudioSource.clip = musicPair[0];
     if (musicPair.Length > 1)
     {
         _musicAuxAudioSource.clip = musicPair[1];
     }
     else
     {
         _musicAuxAudioSource.clip = null;
     }
 }
Beispiel #6
0
        public void PlayLoopClip(MusicClipName clipName, bool stopCurrentClip)
        {
            if (stopCurrentClip)
            {
                Play(clipName);
                _musicSource.loop = true;
                return;
            }

            stopCurrentLoopCoroutine();

            loopCoroutine = playDelayedLoop(clipName, _musicSource.clip.length - _musicSource.time);
            StartCoroutine(loopCoroutine);
        }
Beispiel #7
0
 public void PlayMusic(MusicClipName name)
 {
     sources[(int)SoundType.Music].clip = musicClips[(int)name];
     sources[(int)SoundType.Music].Play();
 }
 //=====================================================================
 #region Audio Clip Retrieval
 //=====================================================================
 /// <summary>
 /// Retrieves the audio clips associated with a music clip name enum.
 /// </summary>
 /// <param name="clipName"> The music clip enumeration name</param>
 /// <returns>An array of audio clips associated. Index 0 = Main, Index 1 = Aux.</returns>
 public AudioClip[] GetMusicClipPair(MusicClipName clipName)
 {
     return(_musicClips[clipName]);
 }