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

2022. 2. 17. 18:00·UNITY/Tool
반응형

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 Mixer를 Scripting하기 위해서 위와 같은 네임스페이스를 참조해야 합니다.

AudioMixer audioMixer;

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

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

(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을 조절할 수 있습니다.

반응형
'UNITY/Tool' 카테고리의 다른 글
  • [UNITY] Animator Override Controller 간단 사용법
  • [UNITY] Sprite Mask 간단 사용법
  • [UNITY] Google Admob 간단 사용법
  • [UNITY] Google Play Game Service (GPGS) 간단하지 않은 사용법
HYEOKJUN
HYEOKJUN
프로그래밍 관련 수업이나 웹 사이트에서 직접 얻은 정보를 공유하는 블로그입니다. (일부 잘못된 정보가 포함될 수 있습니다)
  • HYEOKJUN
    HYEOKJUN
    HYEOKJUN
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • UNITY (18)
        • Tool (9)
        • Script (9)
      • C | C++ (20)
        • Basic (11)
        • STL (8)
        • ETC (1)
      • C# (1)
        • Basic (0)
        • ETC (1)
      • Python (8)
        • Basic (7)
        • Library (1)
        • ETC (0)
      • WEB (2)
        • Basic (2)
      • Skill (0)
        • 자료구조 (0)
      • Workspace (0)
      • ETC (4)
  • 블로그 메뉴

    • 인기 글

    • 태그

      Unity
      Localization
      조건문
      변수
      Package
      자료형
      red-black tree
      컨테이너
      C#
      C
      queue
      반복문
      vector
      stack
      Python
      C++
      포인터
      while
      std
      식별자
    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    HYEOKJUN
    [UNITY] Audio Mixer & Volume Slider 간단 사용법
    상단으로

    티스토리툴바