{TIL} Unity Audio Mixer 활용 방법 2

Kwaksang·2024년 6월 4일

TIL

목록 보기
34/37
post-thumbnail

Unity Audio Mixer 활용 방법 2

Chapter .1 파라미터 설정

  • Exposed Parameters
    이 부분에 믹서와 동일한 이름의 Parameter를 생성해줘야 한다.
    생성 방법은 아래와 같다.

  • Expose Parameter
    현재는 Expose가 되어 있는 상태라, Unexpose라고 나오는데
    원래 선 윗부분에 Expose Parameter가 나온다.
    Expose Parameter를 한 후에 처음 사진 부분으로 돌아가 Parameter의 이름을 변경한다.

Chapter .2 코드 문제 점 수정

기존에 사용했던 코드를 이용하는 경우 Mathf.Log10(volume) 부분에서 범위 오류가 발생
원하는 범위 (-80 ~ 20) / 실제 사용되는 범위 (-Infinity ~ 20)

// 기존 코드

public class AudioController : MonoBehaviour
{
    [SerializeField] private AudioMixer audioMixer;

    public void SetMasterVolume(float volume)
    {
        audioMixer.SetFloat("Master", Mathf.Log10(volume) * 20);
    }

    public void SetBGMVolume(float volume)
    {
        audioMixer.SetFloat("BGM", Mathf.Log10(volume) * 20);
    }

    public void SetEffectVolume(float volume)
    {
        audioMixer.SetFloat("Effect", Mathf.Log10(volume) * 20);
    }
}

// 변경된 코드

public class AudioController : MonoBehaviour
{
    [SerializeField] private AudioMixer audioMixer;

    public void SetMasterVolume(float volume)
    {
        volume = Mathf.Clamp(volume, 0.0001f, 1f);
        audioMixer.SetFloat("Master", Mathf.Log10(volume) * 20);
    }

    public void SetBGMVolume(float volume)
    {
        volume = Mathf.Clamp(volume, 0.0001f, 1f);
        audioMixer.SetFloat("BGM", Mathf.Log10(volume) * 20);
    }

    public void SetEffectVolume(float volume)
    {
        volume = Mathf.Clamp(volume, 0.0001f, 1f);
        audioMixer.SetFloat("Effect", Mathf.Log10(volume) * 20);
    }
}
  • 기존에 사용한 방법에 Clamp로 Volume이라는 value의
    최소값은 0.0001, 최대값은 1로 설정하여 슬라이더 값을 이동하는데 있어서 발생하던 버그가 해결
profile
게임은 재미와 기능!

0개의 댓글