✅ 요구사항
게임에서 사용자에게 음향 크기를 조절할 기능을 제공해주어 디바이스마다 서로다른 사운드 크기에대해 적절히 대응해야합니다. 이전에는 모든 오디오클립 각각의 불륨을 조절하는 방식을 사용하였으나, 유니티에서 제공하는 오디오믹서라는 기능을 이용하여 편리하게 오디오의 타입(BGM, EFFECT 등)마다 불륨을 조절하는 방법을 구현하여 정리해보았습니다.
✅ 응용 기능
유니티에서 제공하는 오디오 믹서를 사용합니다.
✅ 흐름도
✅ 사용 예시
✅ 구현(에셋)
- 프로젝트 폴더에서 오디오 믹서 에셋을 생성합니다.
- 오디오 믹서에 접근한 후, Groups에서 + 버튼을 눌러 그룹을 추가합니다.
- 필자는 BGM, EFFECT 두개의 그룹을 생성하였습니다.
- 생성한 그룹을 클릭한 후, 인스펙터에서 우클릭하여 Expose 시킵니다.
- 스크립트에서 접근이 가능하게 변수를 만드는 작업입니다.
- 노출된 파라미터에서 이름을 지정합니다.
- 이름은 마음대로 설정하시면 되며, 필자는 BGM, EFFECT로 설정하였습니다.
✅ 구현(스크립트)
//SoundManager.cs
...
//옵션을 변경할 때 소리의 불륨을 조절하는 함수
public void SetVolume(SoundType type, float value)
{
mAudioMixer.SetFloat(type.ToString(), value);
}
...
- 쉐이더의 파라미터를 변경시키는 것 처럼 AudioMixer.SetFloat로 하여 해당 값을 바꿔줍니다.
- 필자는 SoundType에서 Enumr값을 String으로 변경하여 파라미터에 접근하는 방식으로 사용했습니다.
- 아래는 오디오 믹서 기능을 포함하여 구성한 사운드매니저 구현입니다.
✅ 사용(외부에서 호출)
//GameMenuManager.cs
...
/// <summary>
/// 슬라이더에서 BGM volume을 설정한다.
/// </summary>
public void SLIDER_ModifyBGMVolume()
{
SoundManager.Instance.SetVolume(SoundType.BGM, mBGMSoundSlider.value);
}
/// <summary>
/// 슬라이더에서 Effect volume을 설정한다.
/// </summary>
public void SLIDER_ModifyEffectVolume()
{
SoundManager.Instance.SetVolume(SoundType.EFFECT, mEffectSoundSlider.value);
}
...
- 사용예시에서 보이는 슬라이드를 이용하여 해당 함수를 호출하고, 사운드매니저의 SetVolume을 이용하여 사운드 크기를 조절합니다.
'unity etc. > others' 카테고리의 다른 글
유니티 TMP 폰트 한번에 모두 바꾸기 (0) | 2023.01.11 |
---|---|
[유니티, C# 오류] InvalidOperationException: Collection was modified; enumeration operation may not execute (0) | 2022.12.02 |
유니티 애니메이션 합치기(애니메이션 레이어, 마스크) (2) | 2022.11.21 |
유니티 안드로이드 지원 게임 빌드하기 (0) | 2022.11.05 |
유니티 이미지 외곽선 오류(PSD Matte) 해결하기 (0) | 2022.11.04 |