Exemple #1
0
        private void PlayLayer(ArdenAudioMixer.MixerLayer layer)
        {
            if (layer.loop)
            {
                PlayLayerAudio(layer, true);
            }
            else
            {
                //Wait for the delay, then play a shot, and start timer again
                float delay = layer.GetShotDelay();

                Utility.CoroutineManager.RunDelayingCoroutine(delay, () =>
                {
                    if (completed || stopped)
                    {
                        return;
                    }

                    //Random chance utilized
                    if (Random.Range(0, 1) < layer.randomChance)
                    {
                        PlayLayerAudio(layer, false);
                    }

                    //Play layer again
                    PlayLayer(layer);
                });
            }
        }
Exemple #2
0
        private void PlayLayerAudio(ArdenAudioMixer.MixerLayer layer, bool looping)
        {
            ArdenAudioInstance instance;

            if (playAtPoint)
            {
                instance = layer.asset.PlayAtPoint(sourceSettings, location, layer.volume * volume, group, looping);
            }
            else
            {
                instance = layer.asset.Play(sourceSettings, layer.volume * volume, group, looping);
            }

            currentlyPlayingChildren.Add(instance);

            instance.OnComplete += () =>
            {
                currentlyPlayingChildren.Remove(instance);
            };
        }