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

오디오 - 1) 배경 음악과 인게임 UI의 음악 효과

monstro 2026. 9. 15. 18:50
728x90
반응형

- 개요

배경 음악과 인게임 UI를 조작하였을 때의 SFX 효과를 추가한다

 

- 스크립트 작업

1) AudioManager 클래스

 

게임에서의 음향 효과를 처리하는 AudioManager 클래스를 생성한다

멤버변수는 위와 같이 구성하여 2개의 AudioSource 컴포넌트를 사용하여 각각 다른 음향을 재생한다

  • BGM 관련 멤버변수
    • bgmSource 멤버변수 : BGM 재생에서 사용할 AudioSource 컴포넌트
    • bgmClips 멤버변수 : 배경음악으로 사용할 음악들
    • currentBgmIndex 멤버변수 : 현재 재생중인 배경음악의 인덱스
    • bgmCheckCoroutine 멤버변수 : 2초 간격으로 배경음악을 재생하는 코루틴
  • UI SFX 관련 멤버변수
    • uiSfxSource 멤버변수 : UI 조작시에 재생할 음향 효과

 

 

Awake 함수를 추가하고 구성하여 2개의 AudioSource에 대한 playOnAwake 옵션을 비활성화한다

 

 

OnEnable 함수와 OnDisable 함수를 위와 같이 구성한다

AudioManager를 서비스 로케이터에 등록하여 외부에서 사용할 수 있도록 설정한다

또, CoCheckBGMRoutine 코루틴 함수를 호출하고 캐싱하여 2초 간격으로 랜덤한 BGM을 재생한다

마지막으로 메인 화면으로 돌아가는 이벤트가 발동되면 동일하게 2초 간격으로 랜덤한 BGM을 재생한다

 

 

PlayBGM 함수를 추가하고 위와 같이 구성한다

현재 재생되고 있는 배경음악을 중단하고 인자로 받은 인덱스에 해당하는 배경음악을 재생한다

 

 

PlayRandomBGM 함수를 추가하여 랜덤한 배경음악을 재생한다

 

 

PlayBGMIfNeeded 함수를 추가하여 배경음악이 재생되고 있지 않다면 랜덤한 배경음악을 재생한다

 

 

CoCheckBGMRoutine 코루틴 함수를 추가하여 2초 간격으로 랜덤한 배경음악을 재생한다

 

 

PlayUISFX 함수를 추가하여 UI 음향 효과의 AudioSource를 통해 SFX를 겹쳐서 재생한다

 

2) UI_BuildBtn 클래스

 

유닛 생성 버튼에 2개의 AudioClip 멤버변수를 추가하여 호버링과 클릭에 대한 음향 효과를 재생한다

 

 

BuildTower 함수에 위와 같이 로직을 추가하여 유닛 생성시에 클릭 SFX 효과를 재생한다

 

 

OnPointerEnter 함수에 위와 같이 로직을 추가하여 유닛 생성 버튼에 커서를 올리면 호버링 SFX 효과를 재생한다

 

- 최종 실행 결과

728x90
반응형