UNITY/Tool

[UNITY] Audio Mixer & Volume Slider 간단 사용법

HYEOKJUN 2022. 2. 17. 18:00
반응형

https://docs.unity3d.com/kr/2020.3/Manual/AudioMixerOverview.html

오디오 믹서 및 개념 개요 - Unity 매뉴얼

AudioMixer는 AudioSources에서 생성하는 오디오 시그널을 더 복잡하게 라우팅하고 믹싱하는 AudioSources를 참조할 수 있는 에셋입니다. 에셋의 유저에 의해 생성된 AudioGroup 계층 구조를 통해 믹싱을 기

docs.unity3d.com

(2022.02.15 기준)


Audio Mixer

[Assets 창 > 마우스 우클릭 > Create > Audio Mixer]를 선택하여 Audio Mixer를 생성합니다.

[Window > Audio > Audio Mixer]를 선택합니다.

[Groups] 좌측의 [+] 버튼을 클릭하여 위와 같이 Child Group을 생성합니다.

Audio Mixer Group 요소를 선택 후 Volume 부분을 우클릭하여 [Expose 'Volume (of {Child Group Name})' to script]를 선택합니다.

(Exposed Parameters에 추가된 파라미터는 해당 라벨 옆에 '→'(오른쪽 화살표) 표시가 나타납니다.)

이와 같은 방법으로 모든 Audio Mixer Group 요소의 Volume 파라미터를 Exposed Parameters에 추가합니다.

Audio Mixer 창의 우측 상단의 [Exposed Parameters]를 선택하여 이름을 원하는 대로 변경합니다.

다음과 같이 생성된 Parameter는 코드에서 수정할 수 있습니다.

또한 Audio Source Component가 있는 오브젝트의 Output에서 출력 Mixer를 설정할 수 있습니다.


Scripting

using UnityEngine.Audio;

Audio MixerScripting하기 위해서 위와 같은 네임스페이스를 참조해야 합니다.

AudioMixer audioMixer;

audioMixer.SetFloat("파라미터 이름", -20f);

위와 같이 SetFloat 메서드를 사용하여 Audio Mixer GroupVolume을 조절할 수 있습니다.

(Volume값을 지정할 때, -40f ~ 0f가 적당하며 -80f는 무음이라고 합니다)
(소리가 너무 작게 느껴지면 Min Value를 -20, Max Value를 20으로 설정합니다.)


audioMixer.SetFloat("SFX", 10f);

VolumeSlider

Slider를 생성합니다.

Slider Component에서 Min Value를 -40, Max Value를 0으로 설정합니다.

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Audio;

public class VolumeSlider : MonoBehaviour
{
    [SerializeField] AudioMixer audioMixer;
    [SerializeField] Slider volumeSlider;
    [SerializeField] string parameterName = "파라미터 이름";
    
    public void OnValueChanged() {
        audioMixer.SetFloat(parameterName,
        (volumeSlider.value <= volumeSlider.minValue) ? -80f : volumeSlider.value);
    }
}

위와 같이 스크립트를 생성합니다.

스크립트 컴포넌트를 Slider 오브젝트에 추가하여 위와 같이 만듭니다.

Slider Component에서 On Value Changed에 위와 같이 추가합니다.

다음과 같이 Slider를 이용하여 Volume을 조절할 수 있습니다.

반응형