본문 바로가기

Unity

Unity - 사운드 조절하기 - Slider로 조절

사운드를 켜고 끄고 하는 것은 크게 두가지 있음

1) Sound Toggle (on/off)

2) Sound Manipulation (0~100)

 

 

 

 

1) Sound Toggle (on/off)

 

코드 살펴보기

 

스크립트 작성하고 Button 만들어서 OnClick에 넣어주면 됨

 

설명하자면 Audio출력에 힘을 주고 안주고가 아니라 Audio입력받는 쪽(AudioListener)가 볼륨을 줄이는 것.

 

 

 

 

 

2) Sound Manipulation (0~100)

스크립트로 조절하기 위해서는 아래와 같은 과정이 필요 (참고로 스크립트와 슬라이더로 조절할 것임)

1. Audio Mixer를 켜서 오디오 그룹만들기

2. Expose 설정과 파라미터 설정

3. 스크립트와 슬라이더 사용

 

 

 

 

1. Audio Mixer를 켜서 오디오 그룹만들기

Window -> Audio -> Audio Mixer

적절한 이름 넣고 믹서와 그룹 만들기

 

 

2. Expose 설정과 파라미터 설정

Asset에 만들어진 Mixer를 클릭하여 Inspector 창보기

만든 채널그룹을 모두 아래와 같이 설정해주기 (Expose Volume... 선택해야 함)

volume 우클릭

다시 믹서로 와서 파라미터 이름 수정해주기

-> 이 파라미터 이름을 스크립트에서 string으로 구별할 것

파라미터변수 우클릭

파라미터 바꾼 결과 -> 본인은 BGM 파라미터만 가지고 놀 것

 

 

 

3. 스크립트와 슬라이더

이제 마무리임

스크립트에

using UnityEngine.Audio;

public AudioMixer audioMixer;

public Slider audioSlider;

float volume = audioSlider.value;

audioMixer.SetFloat(string parameter, volume); 하면 끝

-> 자세한 스크립트는 아래에 있음

 

 

슬라이더 만들기

Slider Min Value : -40 , Max Value : 0 으로 설정함

-> -80 ~ 20까지 볼륨이 존재 

-> -40이하부터는 잘 안들리고 0 이상은 음악이 깨짐...

 

OnValueChanged에 스크립트에서 만든 함수 넣어줌

 

만든 함수는 아래와 같음

-40에 -80을 설정한 이유는 음소거 효과를 내기 위함

SetFloat에 첫번째 인자는 파라미터로 설정한 채널임 -> 본인은 BGM만 테스트

public멤버 있으므로 적절히 만든거 드래그앤드롭으로 넣어줘야 함

 

 

 

 

결과

아무런 오브젝트에 AudioSource 추가 + Clip 추가

Group도 BGM으로 추가 (본인은 BGM만 테스트 할 것)

 

 

슬라이더로 테스트(소리는 없음ㅋㅋ)

 

 

== 참고 == 

1) AudioListener.volume 은 듣는이의 전체볼륨

 

2) UnityEngine.Audio.AudioMixer.SetFloat(string_param, float_vol); 으로 놀기