Hierarchy 에서 마우스 오른쪽 버튼을 눌러서 Create Empty 를 하나 만들어줍니다.
새로 생성된 Object 를 선택하고 인스펙터 Inspector 로 가서 이름을 SoundManager 로 변경해줍니다.
SoundManager.cs 파일을 생성합니다.
public AudioSource audioSource;
public AudioClip audioClipKnock;
public AudioClip audioClipApplause;
...
public static SoundManager instance;
void Awake()
{
if(SoundManager.instance == null)
{
SoundManager.instance = this;
}
}
Awake() 함수는 Start() 함수보다 먼저 호출이 됩니다. 저 소스를 왜 넣는지는 싱글톤 패턴 Singleton Pattern 을 참조하세요.
public void PlayKnockSound()
{
audioSource.PlayOneShot(audioClipKnock);
}
public void PlayApplauseSound()
{
audioSource.PlayOneShot(audioClipApplause);
}
이제 SoundManager 인스펙터에서 Add Component 버튼을 눌러서 지금 만든 SoundManager.cs 파일을 연결하겠습니다.
그러면 아래와 같이 보일텐데요
Hierarchy 에서 만든 Audio Source 를 끌어다 놓아주시고 Audio Clip knock, Audio Clip Applause 는 우측의 동그라미를 눌러서 원하는 사운드파일을 선택해줍니다.
여기까지 마치셨으면 이제 사운드 재생을 할 준비가 모두 완료되었습니다!
사운드를 재생하고자 하는 곳에서 아까 만든 SoundManager.cs 파일내의 함수를 호출하기만 하면 됩니다.
SoundManager.instance.PlayKnockSound();
SoundManager.instance.PlayApplauseSound();
Audio Source 의 인스펙터에서 AudioClip 를 눌러서 사운드파일을 선택해서 재생할 수도 있습니다.SoundManager.instance.audioSource.Play();
버튼 클릭을 했을 때 사운드 재생을 하도록 해놨다고 하면, 버튼을 클릭할 때마다 이전의 사운드재생은 멈추고 새로이 재생이 됩니다. 즉, 누를때마다 끊어지는 현상이 납니다. 하지만 Audio Clip 를 사용해서 PlayOneShot 함수를 이용하면 그런 현상 없이 누를때마다 계속 끝까지 재생이 됩니다.
사운드라 보여드릴 수 없으니 직접 이것저것 테스트 해보시면서 익혀가시기 바랍니다.
'Programming > Unity' 카테고리의 다른 글
[유니티 Unity] Audio listeners in the scene 해결법 (1) | 2018.09.10 |
---|---|
[유니티 Unity] 신 Scene 전환하기 (0) | 2018.09.07 |
[유니티 Unity] Unity Ads 광고 사용하기 (0) | 2018.09.05 |
[유니티 Unity] 이미지 변경하기 (0) | 2018.09.03 |
[유니티 Unity] 유니티 설치하기 (0) | 2018.08.31 |