유니티 엔진 - 게임 프로젝트/타워 디펜스 게임

오디오 - 최종) 유닛의 공격 효과음 추가 + 설정 UI와 오디오 연결

monstro 2026. 9. 17. 18:45
728x90
반응형

- 개요

유닛이 공격하면 효과음을 재생하도록 추가한다

또, 설정 UI에 기능을 추가하여 게임에서 재생되는 소리들의 크기를 조절할 수 있도록 설정한다

 

- 스크립트 작업

1) AudioManager 클래스

 

유닛의 음향 효과를 재생하기 위한 AudioSource 멤버변수를 추가한다

 

 

Awake 함수에 위와 같이 로직을 추가하여 유닛의 음향 효과를 위한 AudioSource 멤버변수를 설정한다

위와 같이 설정을 진행하여 입체 음향을 적용한다

 

 

PlayAttackSFX 함수를 추가하고 불리언 인자를 사용하도록 구성하여 유닛의 음향을 랜덤한 크기로 재생한다

 

2) Player_TowerBase 클래스

 

유닛의 조상 클래스에서 유닛의 공격 음향으로 사용할 오디오 클립을 멤버변수를 추가한다

 

3) Player_TowerCrossbow 클래스

 

Attak 함수에 위와 같이 로직을 추가하여 AudioManager를 사용하여 유닛의 공격 음향을 재생한다

 

4) UI_Settings 클래스

 

AudioMixer 관련 멤버변수를 추가한다

AudioMixer는 여러 음향을 그룹으로 관리하는 애셋을 의미한다

mixerMultiplier 멤버변수를 추가하여 AudioMixer의 값을 조정한다

 

 

Sound Setting 멤버변수와 BGM Setting 멤버변수를 추가한다

  • Sound Setting 멤버변수 : 인게임 사운드를 조절하는 슬라이더 관련 멤버변수
  • BGM Setting 멤버변수 : BGM을 조절하는 슬라이더 관련 멤버변수

 

 

ChangeSfxSliderValue 함수를 호출하여 슬라이더의 값에 따라 인게임 사운드를 조절하고 표시한다

ChangeBgmSliderValue 함수를 호출하여 슬라이더의 값에 따라 BGM을 조절하고 표시한다

 

 

OnDsiaable 함수에 위의 로직을 추가하여 슬라이더의 값을 로컬에 저장한다
OnEnable 함수에 위의 로직을 추가하여 로컬에 저장한 슬라이더의 값을 불러와 슬라이더에 반영한다

 

- 애셋 작업

1) AudioMixer 애셋

 

위와 같이 AudioMixer 애셋을 생성하고 BGM과 InGame의 2개의 그룹을 생성한다

이후 2개의 그룹에 대한 Volume 값에 대한 파라미터를 생성하여 외부에서 설정할 수 있도록 구성한다

 

- 최종 실행 결과

728x90
반응형