🎮 Unity

[UNITY] 슬라이더 디자인/볼륨 조절

dlalwl_jpg 2023. 2. 15. 15:37

이번엔 게임이 배경 음악을 설정하고, 소리를 조절하는 방법에 대해 알아보자.


1. Silder UI 디자인 적용 방법

오디오 조절 바를 만들기 위해 하어이라키 sound_popup에 마우스 우클릭 > UI > Slider를 클릭하고, 이름은 BGMSlider로 바꿔주면 아래와 같이 음원을 조절하는 스크롤바가 생성된다.

slider 생성 모습

slider를 원하는 위치에 놓고 크기를 조절한다. 그 다음 BGMSlider를 클릭하면 세 개의 폴더가 나온다.

이제 조절하는 버튼만 보이도록 Background를 클릭해 색을 투명하게 만든다. 그리고 Fill Area > Fill 도 투명하게 만든다. 여기서 Fill은 조절 버튼을 오른쪽으로 옮겼을 때 채워지는 부분이다.

그리고 Handle Slide Area > Handle을 클릭해 이미지를 조절버튼의 이미지를 삽입해준다.

Handle은 슬라이더를 조절하는 부분을 의미한다.

이렇게 슬라이더의 디자인을 변경할 수 있다.

효과음도 복붙해서 똑같이 만들어준다.

슬라이더 디자인 완성된 모습


2. 볼륨 조절 이벤트 구현

우선 사용할 음원을 Assets 폴더 > Sound 폴더에 저장했다.

그리고 Canvas에 Create Empty를 만들어 Audio Manager라고 이름을 변경해준다. 그리고 Audio Manager 마우스 우클릭 > Audio > Audio Source를 클릭해, BGM Audio Source와 SFX Audio Source를 만들어준다.

그리고 각 Audio Source를 클릭하고 인스펙터 AudioClip에 사용할 음원을 드래그해 넣어준다.

BGM는 Loop에 체크해준다.

 그리고 Assets의 sound 폴더에 마우스 우클릭 > Create > Audio Mixer를 클릭한다.

그리고 AudioMixer 클릭 > Groups > '+' 버튼을 클릭해 BGM과 SFX mixer를 만들어준다.

그리고 Project를 눌러 Audio Mixer를 펼친다. 그 다음, BGM Audio Source와 SFX Audio Source를 각 클릭해 Output에 각 mixer를 드래그 해준다.

이제 스크립트를 작성할 것이다. Assets 폴더에 Scripts폴더를 만든 후 마우스 우클릭하여 Create > C# Script를 클릭해 SoundOptions이라고 이름을 변경해준다. 그리고 아래와 같이 코드를 작성해준다.

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

public class SoundOptions : MonoBehaviour
{
    // 오디오 믹서
    public AudioMixer audioMixer;

    // 슬라이더
    public Slider BgmSlider;
    public Slider SfxSlider;

    // 볼륨 조절
    public void SetBgmVolme()
    {
        // 로그 연산 값 전달
        audioMixer.SetFloat("BGM", Mathf.Log10(BgmSlider.value) * 20);
    }

    public void SetSFXVolme()
    {
        // 로그 연산 값 전달
        audioMixer.SetFloat("SFX", Mathf.Log10(SfxSlider.value) * 20);
    }
}

각 슬라이더를 클릭해 On Value Changed 박스의 '+'를 눌러 Runtime아래 칸에 드래그 해준다.

No Funtion > SoundOptions > BGM, SFX에 해당하는 매소드를 선택해준다.

하이어라키에서 sound_popup 클릭 후 SoundOptions 스크립트를 인스펙터에 드래그한다. 그리고 sound폴더에 있는 Audio Mixer와 해당하는 슬라이더를 드래그해준다.

마지막으로 각 BGM, SFX 슬라이더를 클릭하고 인스펙터를 보면 Min Value와 Max Value가 나온다. 이는 볼륨의 최소 크기과 최대크기이다. Max Value는 0이 넘어가면 음질이 많이 깨지게 된다.

그럼 볼륨 조절 완성이다.


<부족한 점>

- 슬라이더를 이용하여 볼륨을 음소거하는 것 추가로 구현하기

- 효과음은 적용 완벽하게 해보기