사운드를 켜고 끄고 하는 것은 크게 두가지 있음
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... 선택해야 함)
다시 믹서로 와서 파라미터 이름 수정해주기
-> 이 파라미터 이름을 스크립트에서 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); 으로 놀기
'Unity' 카테고리의 다른 글
Unity - 진동(Vibration) - 안드로이드 한정 (0) | 2020.02.27 |
---|---|
Unity - 오브젝트풀(ObjectPool Pattern) 구현하기 (심화) - DontDestroyOnLoad (0) | 2020.02.27 |
Unity - 오브젝트풀(ObjectPool Pattern) 구현하기 (일반) (0) | 2020.02.26 |
Unity - Pause 버튼 구현하기(Time.scaleTime) (3) | 2020.02.24 |
Unity - 블랙홀(Point Effector 2D) (1) | 2020.02.20 |