Exemplo n.º 1
0
        public void PlayAudio(AudioClip clip, Vector3 position, AudioConfiguration audioConfig = null)
        {
            audioSource.clip   = clip;
            transform.position = position;

            //Setup settings
            if (audioConfig == null)
            {
                audioConfig = AudioConfiguration.DefaultConfig;
            }
            ApplySettings(audioConfig);

            //Set 2D or 2D spatial blend
            if (position == Vector3.zero)
            {
                audioConfig.SpatialBlend = 0.0f;
            }
            else
            {
                audioConfig.SpatialBlend = 1.0f;
            }

            audioSource.Play();

            coroutineFinishPlaying = StartCoroutine(FinishedPlaying(clip.length));
        }
Exemplo n.º 2
0
 private void ApplySettings(AudioConfiguration settings)
 {
     audioSource.outputAudioMixerGroup = settings.OutputAudioMixerGroup;
     audioSource.mute                  = settings.Mute;
     audioSource.bypassEffects         = settings.BypassEffects;
     audioSource.bypassListenerEffects = settings.BypassListenerEffects;
     audioSource.bypassReverbZones     = settings.BypassReverbZones;
     audioSource.priority              = settings.Priority;
     audioSource.volume                = settings.Volume;
     audioSource.pitch                 = settings.Pitch;
     audioSource.panStereo             = settings.PanStereo;
     audioSource.spatialBlend          = settings.SpatialBlend;
     audioSource.reverbZoneMix         = settings.ReverbZoneMix;
     audioSource.dopplerLevel          = settings.DopplerLevel;
     audioSource.spread                = settings.Spread;
     audioSource.rolloffMode           = settings.RolloffMode;
     audioSource.minDistance           = settings.MinDistance;
     audioSource.maxDistance           = settings.MaxDistance;
     audioSource.ignoreListenerVolume  = settings.IgnoreListenerVolume;
     audioSource.ignoreListenerPause   = settings.IgnoreListenerPause;
 }