TIL

유니티 뮤직 존(music zone) 생성하기

주전자123 2025. 3. 17. 20:54
320x100
반응형
SMALL

오늘은 특정 공간에 들어가면 음악이 재생되는 뮤직 존을 구현해 볼 것이다.

 

특정 공간을 만들기 위해 오브젝트를 생성하고

박스 콜라이더와 오디오 소스 컴포넌트를 추가한다.

 

그리고 뮤직존이라는 스크립트 작성을 시작한다.

먼저 변수들을 작성하는데

재생할 음악(audioSource), 변화시간주기(fadeTime), 최대볼륨(maxVolume), 타겟볼륨(targetVolume)을 작성해준다.

 

그 다음 스타트에서 타겟불륨을 0으로 설정하고, 오디오 소스를 컴포넌트에서 가져오고,

오디오소스의 볼륨을 타겟볼륨 즉, 0 으로 설정해준다. 그리고 오디오소스를 재생해준다.

 

그리고 업데이트에서 if문을 작성하는데

Mathf.Approximately가 뭐냐면

Mathf.Approximately(a, b)는 a값과 b값이 거의 같은 값인지 비교하는 함수이다.

즉, 오디오소스볼륨이 타겟볼륨과 같은 지 비교하고, 같지 않다면 if문을 발동시킨다.

그리고 Mathf.MoveTowards는 또 뭐냐고 물어본다면

Mathf.MoveTowards(a, b, c)는 a를 b로 천천히 변화시키되, 한 번에 최대 c만큼 이동하도록 하는 함수이다.

즉, 오디오소스볼륨을 타겟볼륨으로 (maxVolume / fadeTime) * Time.deltaTime 만큼 이동하는 것이다.

근데 여기서 퀘스쳔 지금 타겟볼륨도 0이고 오디오소스볼륨도 0이잖아. 그럼 어디서 타겟볼륨을 높여?

이제 나온다.

 

플레이어 태그를 단 플레이어 오브젝트가 이 뮤직존 공간에 들어가면 타겟볼륨을 맥스볼륨으로 만들고,

빠져나온다면 타겟볼륨을 0으로 만든다.

정리하자면 뮤직존에 들어가면 음악이 재생되는 것이 아니라 음악은 게임 시작부터 재생되지만

뮤직존에 들어가면 음악크기가 늘어나는 것이었다!!

 

728x90
반응형
LIST