[unity] 모듈 제작 : 사운드 플레이어 만들기(3)
사운드 플레이어 모듈의 화면 구성 및 Bgm과 Effect Sound 의 컴포넌트 설정 방법에 대해 알아보자.
1. 사운드 모듈 연결 구성
- Modules 라는 Scene을 만든 후 Modules 라는 GameObject를 생성한다.
- Modules 자식으로 SoundPlayer GameObject를 생성한다.
- SoundPlayer GameObject 자식으로 Bgm과 Effect 라는 GameObject를 생성한다.
- 하이어라키 구조는 다음과 같다.
- Modules
- SoundPlayer
- Bgm
- Effect
- SoundPlayer GameObject에 SoundPlayer.cs 컴포넌트를 Add 해준다.(아래 그림 설정 방법 참고)
- BGM GameObject에는 Audio Source 스크립트를 Add Component 해준다.(아래 그림 설정 방법 참고)
- Effect GameObject에는 Audio Source와 Sound Object 컴포넌트를 Add 해준다.
2. SoundType 스크립트 제작
- Effect 사운드를 관리할 수 있는 SoundType Enum을 제작해준다.
- Scripts 폴더 안에 C# 스크립트를 생성 후 아래와 같이 입력한다.
namespace Container.Sound
{
//
public enum SoundType
{
None,
eff_btn_show,
eff_btn_click,
eff_popup_show,
eff_popup_close,
eff_select
//추가 정의하여 사용.
}
}
- SoundPlayer에서 정의해 놓은 SoundType의 사운드를 물려주면, 이펙트 음을 enum 타입으로 손쉽게 가지고 올 수 있다.
- 주의할 점은 정의한 타입과 파일명이 동일해야 한다는 점이다!
3. SoundPlayer 사용 방법
- SoundPlayerTest.cs 코드를 아래와 같이 작성해 준 후 사운드 재생이 잘 되는지 확인해 보자.
- SoundPlayer 호출부 참고 코드는 아래와 같다.
using UnityEngine;
namespace Container.Sound
{
public class SoundPlayerTester : MonoBehaviour
{
public AudioClip bgm;
public AudioClip hit_effect;
void Update()
{
if(Input.GetKeyUp(KeyCode.Space))
{
SoundPlayer.Instance?.PlaySound(SoundType.eff_btn_click);
SoundPlayer.Instance?.PlaySound(hit_effect);
SoundPlayer.Instance?.PlayBGM(bgm);
}
}
}
}
- 주의할 점은 SoundType과 SoundFile 이름이 동일해야 한다.
- AudioClip을 넣어주면서 사운드를 재생할 수 있으며, 짧은 Effect 사운드는 SoundType에 선언하여, 관리해 주자.
- 사운드에 추가적인 기능이 필요하면 확장해서 사용하면 된다.
댓글