오디오 믹서를 사용해서 배경음악 볼륨 조절 바 만들기
2025. 1. 8. 21:48ㆍ카테고리 없음
설정창을 만들어서 배경음악볼륨을 줄이는 기능을 만들었다.
지금 오디오소스에 클립이 clip이 동적으로 적용되기 때문에 오디오소스에 Output도 동적으로 연결해 줘야 해서 밑에와같이 코드를 작성했다.
public AudioMixer audioMixer;
public void PlaySound(string name, string groupName, bool isLoop = false)
{
audioSource = new GameObject($"Sound_{name}").AddComponent<AudioSource>();
audioSource.volume = 0.05f;
audioSource.loop = isLoop;
audioSource.clip = Resources.Load<AudioClip>($"Sounds/{name}");
audioMixer = Resources.Load<AudioMixer>("AudioMixer/LobbyMixer");
Sound(groupName);
}
public void Sound(string groupsName)
{
audioSource.outputAudioMixerGroup = audioMixer.FindMatchingGroups($"{groupsName}")[0];
audioSource.Play();
}
그리고 만들어뒀던 SoundBar에 동적으로 생성한 AudioMixer를 연결해 주면 된다.
public class SoundBar : MonoBehaviour
{
public AudioMixer mixer;
public Slider audioSlider;
private void Start()
{
mixer = AudioManager.Instance.audioMixer;
float currentVolume;
if (mixer.GetFloat("BGM", out currentVolume))
{
audioSlider.value = currentVolume;
}
}
public void OnAudioControl()
{
float sound = audioSlider.value;
if(sound == -40f) mixer.SetFloat("BGM", -80f);
else mixer.SetFloat("BGM", sound);
}
}
그럼 밑에 스크롤바와같이 스크롤을 움직이면 해당 스크롤바와 연결해놓은 곳이 Volume이 줄어든게 확인이된다.