public AudioMixer mixer;
public void SetMasterVolum(float sliderValue)
{
// slider bar의 min값은 0.001, max는 1로 맞춘다.
mixer.SetFloat("MusicVol" ,Mathf.Log10(sliderValue) * 20);
// mixer는 최소 값은 -80dB 최대 값은 0dB이다.
// 최소 값을 맞추기 위해서 20 * Mathf.Log10(0.0001) = 20 * -4 = -80 dB
// 최대 값은 20 * Mathf.Log10(1) = 20 * 0 = 0 dB
}
설명: 게임에서 자주 보던 Master사운드와 그 자식의 사운드를 구현해보았다. AudioSource에 Output에 Mixer를 추가하고 스크립트에서 제어를 하는 구조라 어렵지는 않았지만 처음 사용을 해보았기 때문에 아직 헷갈린다 이번 프로젝트에서 구현해서 실전에 사용할 수 있도록 해야겠다.
private void AudioInit()
{
GameObject bgm = Instantiate(Resources.Load<GameObject>("Sound/BGMSource"), transform);
GameObject sfx = Instantiate(Resources.Load<GameObject>("Sound/SFXSource"), transform);
}
설명: 스크립트에서 public으로 Hierarchy에 있는 오브젝트들을 드래그앤드롭을 하는데 그거와 같이 프로젝트창에 있는 오브젝트들을 사용한다고 생각하면 편하다.
문제는 Resources에 있는 파일들은 첫 시작 시 같이 빌드? 되기 때문에 너무 많은 오브젝트를 추가하는 것은 좋지 않을 것 같다.
1. Mixer: 여러 사운드를 제어할 때 사용
2. Resources: 프로젝트폴더에 있는 특정 파일을 가져올 때 사용
1. 없음
1. 없음