public void PlaySound(AudioClip clip, SoundEmitterSettings settings, Vector3 position = default) { _audioSource.clip = clip; ApplySettings(_audioSource, settings); _audioSource.transform.position = position; _lastUseTimestamp = settings.Loop ? Mathf.Infinity : Time.realtimeSinceStartup + clip.length; _audioSource.Play(); }
public SoundEmitter PlaySound(AudioClip clip, SoundEmitterSettings settings, Vector3 position = default) { SoundEmitter soundEmitter = GetSoundEmitter(); if (soundEmitter != null) { soundEmitter.PlaySound(clip, settings, position); } return(soundEmitter); }
private void ApplySettings(AudioSource source, SoundEmitterSettings settings) { source.outputAudioMixerGroup = settings.OutputAudioMixerGroup; source.mute = settings.Mute; source.bypassEffects = settings.BypassEffects; source.bypassListenerEffects = settings.BypassListenerEffects; source.bypassReverbZones = settings.BypassReverbZones; source.loop = settings.Loop; source.priority = settings.Priority; source.volume = settings.Volume; source.pitch = settings.Pitch; source.panStereo = settings.PanStereo; source.spatialBlend = settings.SpatialBlend; source.reverbZoneMix = settings.ReverbZoneMix; source.dopplerLevel = settings.DopplerLevel; source.spread = settings.Spread; source.rolloffMode = settings.RolloffMode; source.minDistance = settings.MinDistance; source.maxDistance = settings.MaxDistance; source.ignoreListenerVolume = settings.IgnoreListenerVolume; source.ignoreListenerPause = settings.IgnoreListenerPause; }