using System.Collections;
using System.Collections.Generic;
public class SoundSystem : MonoBehaviour {
_srcBackgroundMusic.loop = true;
backgroundMusic = _srcBackgroundMusic;
ambienceMusic = _ambienceSource;
voiceMusic = _voiceSource;
sfxSource.volume = currentSFXVolumn;
backgroundMusic.volume = currentBGVolumn;
ambienceMusic.volume = currentAmbienceVolumn;
voiceMusic.volume = currentVoiceVolumn;
sfxSource.volume = VNEngine.sfxVolume;
backgroundMusic.volume = VNEngine.maxVolume;
ambienceMusic.volume = VNEngine.ambienceVolume;
voiceMusic.volume = VNEngine.voiceVolume;
public AudioSource _sfxSource;
public AudioSource _srcBackgroundMusic;
public AudioSource _ambienceSource;
public AudioSource _voiceSource;
public static AudioSource sfxSource;
public static AudioSource backgroundMusic;
public static AudioSource ambienceMusic;
public static AudioSource voiceMusic;
public static float currentBGVolumn = 0.5f;
public static float currentSFXVolumn = 0.5f;
public static float currentAmbienceVolumn = 0.5f;
public static float currentVoiceVolumn = 0.5f;
public static void PlayVoice(AudioClip clip, bool forcePlay)
if (!voiceMusic.isPlaying)
voiceMusic.PlayOneShot(clip);
public static void PlayVoice(AudioClip clip)
if (!voiceMusic.isPlaying)
voiceMusic.PlayOneShot(clip);
public static void PlaySound(AudioClip clip)
sfxSource.PlayOneShot(clip);
public static void PlaySound(string clipName)
AudioClip clip = Resources.Load<AudioClip>("VN/SFX/" + clipName);
sfxSource.PlayOneShot(clip);
public static string currentMusic;
public static void PlayMusic(string clipName)
if (currentMusic != clipName)
clipName = clipName.Replace(".wav", "");
AudioClip clip = Resources.Load<AudioClip>("VN/BGM/" + clipName);
if (backgroundMusic.isPlaying)
backgroundMusic.DOFade(0, 1.5f).OnComplete(() => ChangeMusic(backgroundMusic, clip, currentBGVolumn));
ChangeMusic(backgroundMusic, clip, currentBGVolumn);
public static void PlayAmbienceSound(string clipName)
clipName = clipName.Replace(".wav", "");
AudioClip clip = Resources.Load<AudioClip>("VN/BGM/" + clipName);
if (ambienceMusic.isPlaying)
ambienceMusic.DOFade(0, 1.5f).OnComplete(() => ChangeMusic(ambienceMusic, clip, currentAmbienceVolumn));
ChangeMusic(ambienceMusic, clip, currentAmbienceVolumn);
private static void ChangeMusic(AudioSource src, AudioClip clip, float volumn)
src.DOFade(volumn, 1.5f);
public static void StopMusic()
backgroundMusic.DOFade(0, 1.5f);
public static void StopAmbience()
ambienceMusic.DOFade(0, 1.5f);
public static void VolumnBackgroundMusic(float volumnValue)
currentBGVolumn = volumnValue;
backgroundMusic.volume = volumnValue;
VNEngine.sfxVolume = currentBGVolumn;
public static void VolumSFX(float volumnValue)
currentSFXVolumn = volumnValue;
sfxSource.volume = volumnValue;
VNEngine.sfxVolume = currentSFXVolumn;
public static void VolumeAmbience(float volumnValue)
currentAmbienceVolumn = volumnValue;
ambienceMusic.volume = volumnValue;
VNEngine.ambienceVolume = currentAmbienceVolumn;
public static void VolumeVoice(float volumnValue)
currentVoiceVolumn = volumnValue;
voiceMusic.volume = volumnValue;
VNEngine.voiceVolume = currentVoiceVolumn;