GameDevelop/Unity팀프로젝트

[Unity] 마스터오디오 + Settings UI 구현, 사운드 설정 기능

도도돋치 2025. 7. 17. 22:18
Contents 접기
728x90

오늘의 목표

  • Master Audio를 활용한 마스터 볼륨 / 효과음 / 배경음악 조절
  • ESC 키로 Settings 창 On/Off 토글
  • 나중에 다른 설정 기능 또는 그래픽 등 다른 설정도 넣을 수 있게 구조 설계

 

Master Audio 기반 오디오 슬라이더 만들기

구현 요소

항목 설명
Master 전체 볼륨 (MasterAudio.MasterVolumeLevel)
SFX 효과음 볼륨 (SFX Bus로 묶어서 제어)
BGM 배경음악 Playlist 볼륨

 

 

UI 구성

  • Canvas > SettingsUI 패널 아래에 슬라이더 3개 생성
    • MasterSlider, SFXSlider, BGMSlider
  • AudioController.cs에 슬라이더들을 연결

 

 SFX 그룹 만들기

  • Master Audio의 Group SFX Bus에 할당
  • MasterAudio.SetBusVolumeByName("SFX", value)로 조절 가능

 

작업 순서

1) AudioController.cs 작성

  • MasterAudio를 이용해 Master/SFX/BGM 슬라이더 연결
  • PlayerPrefs로 저장 및 불러오기 구현
  • Singleton 구조로 만들어 재사용 용이

2) UI 슬라이더 구성

  • UI > Canvas > SettingsUI 내에 슬라이더 3종 생성
    • MasterVolume
    • SFX Volume
    • BGM Volume
  • 슬라이더에 AudioController 연결

3) Settings UI On/Off 기능 구현

  • 빈 오브젝트에 SettingsManager.cs 작성
  • ESC 키 누르면 SettingsUI 활성화/비활성화 토글
  • 추후 그래픽 설정 등도 이 안에 통합할 수 있도록 구조 설계

 

구조 정리

UICanvas
└── SettingsUI
     └── SoundPanel
          ├── MasterVolumePanel (슬라이더)
          ├── SFXVolumePanel (슬라이더)
          └── BGMVolumePanel (슬라이더)

SoundManager (빈 오브젝트)
└── AudioController.cs

SettingsManager.cs (ESC로 토글 제어)

 

 

트러블슈팅

  • Playlist Controller is not initialized 오류 → MasterAudio의 순서 문제
    → 실행 순서 조절하기 위해 Awake 안에서 처리하던 BGM Start로 변경

 

느낀 점 / 다음 할 일

  • UI 구조는 확장성을 고려해서 설계하는 게 중요
  • MasterAudio를 쓰니 오디오 제어는 정말 편했다
  • 다음엔 그래픽 설정 / 자막 ON/OFF 등도 추가 예정!

 

오늘 정리

항목 완료 여부 설명
MasterAudio 슬라이더 조절 Master / SFX / BGM 각각 분리
PlayerPrefs 저장 게임 재실행 시에도 유지
ESC 키로 Settings UI 열기 SettingsManager에서 감지
전체 구조 설계 추후 확장성 고려 (그래픽 설정 등 추가 예정)

 

728x90