2024. 3. 21. 21:58ㆍ내일배움캠프
3월 21일
오늘은 유니티의 Audio Mixer를 정리해 보도록 하겠다.
Audio Mixer
오디오 믹서~~~~~~~
나는 유니티를 작업하면서 사운드를 넣게될때면
![](https://blog.kakaocdn.net/dn/cK8ZUX/btsFZEhYwCj/FMq2kPqoguO4vvhEv7xFx1/img.png)
요런 오디오 소스를 만들어서 오디오 클립을 넣어주는 형태로 작업을 했었다
하지만.... 게임의 규모가 커질수록? 이 오디오 소스에서 들려주는 BGM 혹은 효과음들이 많아지게 될것이다
이때 이 오디오 소스를 효율적으로 관리하게 도와주는 녀석이 바로 오디오 믹서라고 하는 녀석이다
![](https://blog.kakaocdn.net/dn/bjuhVV/btsF0FUENnE/CE6FdZEP1Ndr53OHoewup0/img.png)
유니티에선 오디오 믹서의 개념과 개요를 잘 설명해주고 있다.
즉 오디오 소스에 대한 제어, 균형 및 동적 조정을 제공해서? 리소스 사용을 최적화 시킨다.
이미지로 보면 더 이해가 확 와닿는다
![](https://blog.kakaocdn.net/dn/UJDxs/btsFY7xW9mS/723E7SM7iiWfkTkz7Y8Prk/img.png)
오디오 믹서를 만드는 방법은 다음과 같다
![](https://blog.kakaocdn.net/dn/qRT3K/btsFYsbmUKB/9xbnoZKSL8IVilSdMWCJhK/img.png)
![](https://blog.kakaocdn.net/dn/dtyeSl/btsFZBFzCiY/37g6ErvPcNw4TAAWsBoj6k/img.png)
초기의 상태는 이렇다 Master라는 녀석 달랑 하나만 존재하는데
![](https://blog.kakaocdn.net/dn/TH7eS/btsFXZtRw0G/kpUcsP02eMaU5PcNyGJJK1/img.png)
여기 그룹의 +버튼을 누르면 Master의 자식으로 새로운 그룹을 만들어줄수있다
![](https://blog.kakaocdn.net/dn/kZeWz/btsF0rPLwrl/MUnvKIkv5ceOgMLXiGWAp1/img.png)
일단 Master라고 하는 녀석은 전체 볼륨 조절 그리고 나는 +버튼을 눌러 BGM과 SFX 그룹을 만들어주었다
저기까지만 보면 일반 게임에 흔히 있는 게임옵션 UI를 생각하면 된다
![](https://blog.kakaocdn.net/dn/bT4llO/btsFYNfljlS/gQM9w2uZXX6TWIVDwTV1j1/img.png)
이런 느낌인 것이지
![](https://blog.kakaocdn.net/dn/lkTQx/btsFZMNBHwT/0FgvSskvtKiKopaPbaZpT1/img.png)
그룹을 선택하게 되면 Expose 어쩌구 저쩌구 스크립트라고 하는게 뜨는데 선택해주고
3개 그룹 모두 동일하게 설정해준다
![](https://blog.kakaocdn.net/dn/SsVh5/btsF0m16Ltj/YYiXhVFeJk5tn75cgFJWhk/img.png)
이름도 바꿔주고
![](https://blog.kakaocdn.net/dn/bYU3OY/btsFYLBM17j/lXbeI83PPtKecXpcJIYYRK/img.png)
이렇게 만들어준 오디오 소스에 오디오 믹서 그룹을 추가해주자
public class AudioMixerController : MonoBehaviour
{
[SerializeField] private AudioMixer m_AudioMixer;
[SerializeField] private Slider m_MusicMasterSlider;
[SerializeField] private Slider m_MusicBGMSlider;
[SerializeField] private Slider m_MusicSFXSlider;
private void Awake()
{
m_MusicMasterSlider.onValueChanged.AddListener(SetMasterVolume);
m_MusicBGMSlider.onValueChanged.AddListener(SetMusicVolume);
m_MusicSFXSlider.onValueChanged.AddListener(SetSFXVolume);
}
public void SetMasterVolume(float volume)
{
m_AudioMixer.SetFloat("Master", Mathf.Log10(volume) * 20);
}
public void SetMusicVolume(float volume)
{
m_AudioMixer.SetFloat("BGM", Mathf.Log10(volume) * 20);
}
public void SetSFXVolume(float volume)
{
m_AudioMixer.SetFloat("SFX", Mathf.Log10(volume) * 20);
}
}
UI 슬라이더를 만들어주고 해당 UI 슬라이더로 볼륨을 조절할 수 있도록 스크립트도 만들어서 넣어주자
끝
오늘은 오디오 소스를 효율적으로 관리하는 오디오 믹서에 대해서 알아보았다.
겸사겸사 Slider로 볼륨을 조절할 수 있도록 하는 예제 코드도 가져와서 알아보았다.
단지 오디오 소스만 달랑 만들어서 클립만 넣어주는 형식보단 오디오 믹서를 적극활용해서 사용해보자
3월 21일 TIL은 여기서 마치도록 하겠다.
'내일배움캠프' 카테고리의 다른 글
240325-TIL (1) | 2024.03.25 |
---|---|
240322-TIL (0) | 2024.03.22 |
240320-TIL (0) | 2024.03.20 |
240319-TIL (0) | 2024.03.19 |
240318-TIL (0) | 2024.03.18 |