/// <summary>Play a SFX file by name on the SFX AudioSource.</summary> public void PlaySFX(string filename) { if (SettingsManager.instance.sfxEnabled) { AudioDatabase.AudioFile audioFile = sfxDatabase.GetAudioFileForKey(filename); Assert.IsNotNull(audioFile); sfx.volume = audioFile.volume * SettingsManager.instance.sfxVolumeMultiplier; sfx.PlayOneShot(audioFile.clip); } }
/// <summary>Play a music file by key on the Background AudioSource.</summary> public void PlayMusic(string key) { if (SettingsManager.instance.musicEnabled) { AudioDatabase.AudioFile audioFile = musicDatabase.GetAudioFileForKey(key); Assert.IsNotNull(audioFile); if (background.clip == audioFile.clip) { return; } //no need to load background.volume = audioFile.volume * SettingsManager.instance.musicVolumneMultiplier; background.clip = audioFile.clip; background.loop = true; background.Play(); } }
/// <summary>Play a music file by name on the music AudioSource.</summary> public void PlayMusic(string filename) { if (SettingsManager.instance.musicEnabled) { AudioDatabase.AudioFile audioFile = musicDatabase.GetAudioFileForKey(filename); Assert.IsNotNull(audioFile); //if the music audio source is currently playing the same audioclip, ignore if (music.isPlaying && music.clip == audioFile.clip) { return; } //otherwise set the volume, load and loop the clip music.volume = audioFile.volume * SettingsManager.instance.musicVolumeMultiplier; music.loop = true; music.clip = audioFile.clip; music.Play(); } }