본문 바로가기
프로그래밍/유니티

[Unity] Event Trigger로 오디오 클립 재생 제어하기

by 김시루시루르 2022. 5. 24.

라는 제목을 썼지만 적절한 사용법은 꽤 한정적이라고 생각하긴 하는데 ...

일단 저는 버튼을 눌렀을때 재생되는 효과음을 이걸로 제어한 기록입니다.

말고는 배경음악 바꾸기 정도 할 수 있지 않을까? (근데 이건 ... 스크립트가 더 좋아보이네)

 

스크립트 쓰다가 인스펙터로 하니까 안 귀찮고 편하긴 한데 공통된 다수의 작업엔 ... 그다지 좋진 않은듯

왜냐하면 이벤트 트리거가 아무리 같은 컴포넌트를 갖고 있고 같은 이벤트를 갖고 있어도

오브젝트 여러개를 선택하면 이벤트를 안 보여주더라고요 하... 왜이러는거임? 대체 왜..?

 


1. 오브젝트에 Audio Source 설정

먼저 아무 오브젝트나 ... (그래도 이왕이면 관리하기 쉬운 오브젝트에)

Audio Source 컴포넌트를 부착합니다. 그리고 Audio Clip 항목에 원하는 오디오 클립을 끼워주세요.

한 오브젝트에 오디오 소스 컴포넌트를 두 개 붙여도 괜찮습니다(!)

그런데 나중에 좀 헷갈릴 순 있음 구별 해주긴 해주지만요

 

각 오디오 소스 컴포넌트에서 Play On Awake 등의 설정을 조정합니다.


2. Event Trigger 설정 및 이벤트 추가

효과를 관리할 오브젝트에 이벤트 트리거를 추가하고 설정합니다.

예를들어 버튼 효과음이라면, 버튼 오브젝트에 이벤트 트리거를 추가하고 이벤트를 추가하면 됩니다.

버튼이라면 선택되었을 때, 눌렸을 때 등의 이벤트를 추가하면 적절하겠죠.

위 이미지에서도 그렇게 했습니다!


3. 이벤트에 Audio Source가 부착된 오브젝트를 참조

만든 이벤트에

원하는 오디오 클립을 가진 오디오 소스 컴포넌트가 부착된 오브젝트를 참조하게 만들어줍니다.


4. 이벤트 선택

그러면 이벤트 선택 메뉴에서 Pause, Play 등 오디오소스와 관련 있는 이벤트를 볼 수 있습니다!

참고로, 참조된 오브젝트에 여러 개의 오디오 소스 컴포넌트가 부착되어 있을 경우

저렇게 AudioSource, AudioSource (1), (2) ... 등 해당 컴포넌트의 생성 순으로 나옵니다.

헷갈리니 분리해두시는것도 좋지만 ... 별로 문제 없으시다면 그냥 하나에 해도 됩니다.

 

이렇게 하면 해당 이벤트마다 오디오클립이 재생됩니다! 와!

스크립트를 안 써도 되는 건 좋지만,

위에서도 말했듯이 여러 개를 다뤄야 할 때는 물리적 고생이 있을 수도 있겠습니다.

댓글