public AudioSource PlaySound( float panAmount, AUDIOTEMPLATE template, AudioClip soundClip) { if(soundClip == null) { return null; } AudioSource newAudio = s_instance.gameObject.AddComponent<AudioSource>(); newAudio.clip = soundClip; SetSourceToTemplate(template, newAudio); newAudio.pan = panAmount; newAudio.Play(); m_allSounds.Add(newAudio); return newAudio; }
private void SetSourceToTemplate(AUDIOTEMPLATE template, AudioSource source) { AudioSource templateSource = AudioTempates[template]; source.dopplerLevel = templateSource.dopplerLevel; source.ignoreListenerPause = templateSource.ignoreListenerPause; source.ignoreListenerVolume = templateSource.ignoreListenerVolume; source.loop = templateSource.loop; source.maxDistance = templateSource.maxDistance; source.minDistance = templateSource.minDistance; source.pan = templateSource.pan; source.panLevel = templateSource.panLevel; if(template == AUDIOTEMPLATE.FOOTSTEP) { source.pitch = Random.Range(0.5f, 2.0f); } else if ( template == AUDIOTEMPLATE.JUMP) { source.pitch = Random.Range(0.9f, 1.1f); } else { source.pitch = templateSource.pitch; } source.playOnAwake = templateSource.playOnAwake; source.priority = templateSource.priority; source.rolloffMode = templateSource.rolloffMode; source.spread = templateSource.spread; source.timeSamples = templateSource.timeSamples; source.velocityUpdateMode = templateSource.velocityUpdateMode; source.volume = templateSource.volume; }