Exemple #1
0
        public EffectSoundInstance Fetch(ISoundPool soundPool)
        {
            EffectSoundInstance sound = soundPool.FetchFromPool <EffectSoundInstance>();

            sound.name = name;
            sound.SetClip(GetNextClip());
            sound.SetRolloffDistance(_rolloffDistance.Min, _rolloffDistance.Max);
            sound.SetMixerGroup(_outputMixer);
            sound.SetBaseVolume(_volumeRange.ChooseRandom());
            sound.SetBasePitch(_pitchRange.ChooseRandom());

            AddFilters(sound);

            return(sound);
        }
Exemple #2
0
        public SoundInstance Fetch(ISoundPool pool)
        {
            if (IsEmpty)
            {
                return(null);
            }

            if (_isBank)
            {
                Type type = _soundBank.GetType();
                if (type == typeof(AmbienceSoundBank))
                {
                    return((_soundBank as AmbienceSoundBank).Fetch(pool));
                }
                if (type == typeof(BlendSoundBank))
                {
                    return((_soundBank as BlendSoundBank).Fetch(pool));
                }
                if (type == typeof(EffectSoundBank))
                {
                    return((_soundBank as EffectSoundBank).Fetch(pool));
                }
                if (type == typeof(ImpactSoundBank))
                {
                    return((_soundBank as ImpactSoundBank).Fetch(pool, 0f));
                }
                if (type == typeof(SequenceSoundBank))
                {
                    return((_soundBank as SequenceSoundBank).Fetch(pool));
                }

                throw new NotImplementedException("SoundBank type not implemented: " + type);
            }

            EffectSoundInstance sound = pool.FetchFromPool <EffectSoundInstance>();

            sound.SetClip(_audioClip);

            return(sound);
        }