Unity C# > 컴포넌트 : Audio 관련 컴포넌트들과 프로퍼티/함수 모음
카테고리: UnityDocs
태그: Unity Game Engine
공부하면서 알게된 것만 정리합니다.😀
👩🦰 Audio Source
wav 파일이나 mp3파일을 재생시키는 컴포넌트. 마치 카세트 같은 것. 테이프로 쓸 오디오 클립(mp3 파일)만 넣어주면 된다.
🚀 에디터
Play On Awake
: 게임 시작하자 마자 재생할건지Loop
: 음악이 끝나도 다시 반복할건지Pitch
: 재생 속도Volume
: 재생 소리 크기- 3D Sound Settings
Min Distance
- 이 컴포넌트가 붙은 오브젝트를 기준으로 하여 Min Distance 내에서는 최고 음량을 유지한다. (이 거리 내에선 돼지 소리가 최대로 들림)
- 이 컴포넌트가 붙은 오브젝트를 기준으로 하여 Min Distance 을 벗어나면 서서히 음량이 감소한다. (벗어나면 돼지 소리가 거리에 따라 서서히 작게 들리기 시작)
Max Distance
- 이 컴포넌트가 붙은 오브젝트를 기준으로 하여 Max Distance 내에서는 서서히 음량이 감소한다. (이 거리 내에선 거리에 따라 돼지 소리가 서서히 작게 들리기 시작)
- 이 컴포넌트 오브젝트를 기준으로 하여 Max Distance 을 벗어나면 소리가 완전히 들리지 않는다. (벗어나면 돼지 소리가 아예 들리지 않음)
작은 원이 Min Distance 범위이고 큰 원이 Max Distance 범위다. Min Distance 거리 내에 있을 땐 돼지의 Audio Source 가 재생하는 소리를 최대 볼륨으로 들을 수 있으며 Min Distance ~ Max Distance 범위 안의 거리에서는 돼지의 소리가 거리에 반비례하여 들린다. 멀 수록 돼지 소리가 작게 들림. Max Distance 거리 밖에서는 돼지의 소리를 아예 들을 수가 없게 된다.
- 디버그 모드
Pan Level Custom Curve
- 1 에 가까운 커브일 수록 3 D 로 소리를 재생한다.
- 가까이 있을 수록 크게, 멀리 있을 수록 작게
- 0 에 가까운 커브일 수록 2 D 로 소리를 재생한다.
- 거리에 따른 볼륨 차별화가 없음.
- 1 에 가까운 커브일 수록 3 D 로 소리를 재생한다.
🚀 함수
✈ Play
public void Play(ulong delay = 0);
- 클립을 재생. 단, 인수를 필요로 하지 않으므로 미리
clip
에 재생시킬 클립이 할당 되어 있어야 한다. - 소리를 중첩시키지 않기 때문에 이미 재생 중이었던 소리는 중지 시킨후 자신의 클립을 재생시킨다.
✈ PlayOneShot
public void PlayOneShot(AudioClip clip, float volumeScale = 1.0F);
- 클립을 1회 재생. 단 Play()와는 다르게 재생시킬
clip
을 인수로 받는다. - Play()와는 다르게 소리를 중첩해서 재생할 수 있다. 이미 재생 중이었던 소리를 중지시키지 않은 채로 자신의 클립을 같이 그 위에 재생시킨다.
- 던져지는 개념이라 Play() 와 달리 중간에 멈출 수가 없다. 한번 던져지면 재생기 Audio Source가 꺼지는게 아닌 이상 끝까지 재생된다.
✈ PlayClipAtPoint
public static void PlayClipAtPoint(AudioClip clip, Vector3 position, float volume = 1.0F);
거리에 따라 사운드 크기가 달라야 경우에는 오브젝트에 Audio Source 를 붙여야한다. 그 오브젝트 자체가 소리의 진원지가 될 수 있도록!
- 오브젝트에 Audio Source 를 붙인다.
- 근데 반드시 꼭 Audio Source 달고 있는 오브젝트에서만 소리가 나야하는건 아니다! 다른 좌표에서도 소리를 재생하게 할 수 있다. 그 함수가 바로 PlayClipAtPoint
audioSource.PlayClipAtPoint(clip, new Vector3(5, 1, 2));
👩🦰 Audio Listner
Audio Source가 소리를 발생시키는 근원지라면
Audio Listner
컴포넌트는 소리를 듣는 관객, 듣는 사람, 귀.
한 Scene 안에 하나만 있으면 된다. 이게 있어야 소리를 들을 수 있다. Main Camera에 기본적으로 붙어있다.
- 좀 더 3 D 현실감을 주고 싶다면 플레이어의 귀 부분에 Audio Listener 컴포넌트를 달 수도 있겠다!
- 단, 활성화 되어 있는 Audio Listener 컴포넌트 월드에서 하나만 존재해야 하기 때문에 이럴땐 메인 카메라의 Audio Listener 컴포넌트를 비활성화 해주자.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기