Ejemplo n.º 1
0
        public void RecycleSound(USound sound)
        {
            if (sound == BGM)
            {
                return;
            }

            int indx = 0;

            while (indx < _playingSounds.Length)
            {
                if (_playingSounds[indx] == sound)
                {
                    break;
                }

                indx++;
            }

            _playingSounds.Erase(indx);

            if (_availableSounds.Length + _playingSounds.Length > maxSoundCapacity)
            {
                Destroy(sound.source);
            }
            else
            {
                _availableSounds.Push(sound);
            }
        }
Ejemplo n.º 2
0
 public override void Dispose()
 {
     BGM              = null;
     _oneShotSound    = null;
     _playingSounds   = null;
     _availableSounds = null;
 }
Ejemplo n.º 3
0
        public USound PlaySound(AudioClip clip, float volume, float pitch, float pan, bool loop)
        {
            USound sound = GetAvaliableSound();

            sound.Play(clip, volume, pitch, pan);
            sound.SetLoop(loop);

            return(sound);
        }
Ejemplo n.º 4
0
        public void PlayOneShotSound(AudioClip clip, float volume)
        {
            if (_oneShotSound == null)
            {
                _oneShotSound = new USound(this);
            }

            _oneShotSound.source.PlayOneShot(clip, volume);
        }
Ejemplo n.º 5
0
        public void PlayBackgroundMusic(AudioClip clip, float volume, bool loop = true)
        {
            if (BGM == null)
            {
                BGM = new USound(this);
            }

            BGM.Play(clip, volume, 1, 0);
            BGM.SetLoop(loop);
        }
Ejemplo n.º 6
0
        private USound GetAvaliableSound()
        {
            USound sound = null;

            if (!_availableSounds.Empty)
            {
                sound = _availableSounds.Pop();
            }

            if (sound == null)
            {
                sound = new USound(this);
            }

            _playingSounds.Push(sound);

            return(sound);
        }