midas+son의 크리에이티브(creative) 이야기

AudioSource 다중 사용이 무슨 말인가 하면

보통 AudioSource의 clip(음원 이라고 생각하자)을 

하나 등록 하여 사용하게 된다.


스크립트에서 도중에 해당 clip을 바꾸어 사용할 수 있다.

하지만 그러면 이전의 음원은 날라가거나 짤리게 된다.


배경음이 있고 몬스터가 있고

스킬이 있고 이펙트가 있다.


하나의 AudioSource를 사용하면

게임을 하기 싫어질 만큼 귀가 괴로워진다.


보통은 하나의 오브젝트에 하나의 AudioSource를 가지고 있다.

몬스터는 몬스터의 음악이 있고

배경음도 지역에 따라 clip을 바꾸어 틀어 주게 된다.


하지만 하나의 오브젝트에서

동시에 들려주어야 하는 것이 있다면 어떻게 할 것인가?


쉽게 예를 들어 설명하면

캐릭터가 있다. 

점프를 할 떄 점프 음을 튼다.

펀치를 날리면 타격음이 나와야 한다.

도중에 맞으면 잡음정도 하나 생겨야 한다.


이렇게 하나의 FBX로 만들어진 오브젝트의 경우

상태 값이 많아 사용될 AudioSource의 양도 많아 질텐데

하나의 AudioSource로는 감당이 안되며

동시에 처리가 힘들다.


그럼 어떻게 해야 되겠는가?


쉽게 AudioSource를 여러개 만드는 것이다.


어디에 만드느냐?


오브젝트에 Create Empty를 하여 자식으로 더미를 만든다.

FBX로 불러온 것이라면 본의 위치를 잡는다.

점프음은 다리 부분에 더미를 만들어 AudioSource를 넣는다.

펀치는 주먹에 더미를 만들고 AudioSource를 추가한다.

이렇게 자식으로 더미를 만들어 AudioSource를 각각 추가한다.

그리고 캐릭터 컨트롤 스크립트에서 

public으로 전역변수 AudioSource를 

각각 변수에 할당 하여 컨트롤 하거나

child를 찾아 컨트롤 할 수 있다. 

그러면 여러가지의 음원이 씹히지 않고

깔끔하게 따로따로 나올 수 있다.


AudioSource 를 설계 할 때에는

하나의 AudioSource에서 clip을 바꾸어 가며 컨트롤 할지

더미로 분할하여 다중으로 AudioSource를 생성해 컨트롤 할지 

고려해봐야 함을 기억하자.

'공부 > Unity' 카테고리의 다른 글

[잡담]유니티로 서버 달지 말자!!!  (0) 2016.06.11
Unity Scene Change(씬 바꾸기)  (0) 2016.06.04
GetComponent<T>() 사용에 대해  (0) 2016.06.02
다중 트리거(Trigger) 조작 문제  (0) 2016.06.01
splat map  (0) 2016.05.30