Ejemplo n.º 1
0
 public void PlayAudioSource(ClipIdentifier identifier)
 {
     if (audioSourcesDictionary.ContainsKey(identifier))
     {
         audioSourcesDictionary[identifier].Play();
     }
 }
        private SfxClip GetRandomClip(List <SfxClip> clipsOfDesiredType, ClipIdentifier clipIdentifier)
        {
            if (clipsOfDesiredType.Count == 1)
            {
                return(clipsOfDesiredType[0]);
            }

            var indexOfLastOne = _indexOfLastPlayedClip[clipIdentifier];

            if (indexOfLastOne == -1)
            {
                var randomClipIndex = Random.Range(0, clipsOfDesiredType.Count);
                _indexOfLastPlayedClip[clipIdentifier] = randomClipIndex;

                return(clipsOfDesiredType[randomClipIndex]);
            }
            else
            {
                var lastPlayedClip = clipsOfDesiredType[indexOfLastOne];

                var otherClips = clipsOfDesiredType.Where(clip => clip != lastPlayedClip).ToArray();

                var randomClipIndex = Random.Range(0, otherClips.Length);
                var randomClip      = otherClips[randomClipIndex];

                _indexOfLastPlayedClip[clipIdentifier] = clipsOfDesiredType.IndexOf(randomClip);

                return(randomClip);
            }
        }
Ejemplo n.º 3
0
 // Passed functions
 public void PlayAudioSource(ClipIdentifier identifier)
 {
     if (IsNull())
     {
         return;
     }
     manager.PlayAudioSource(identifier);
 }
        public void PlayClip(ClipIdentifier clipIdentifier)
        {
            var clipsOfDesiredType = _clips.Clips.Where(clip => clip.Clip == clipIdentifier).ToList();

            var sfxClip = GetRandomClip(clipsOfDesiredType, clipIdentifier);

            Play(sfxClip.AudioClip);
        }