본문 바로가기

[unity] 모듈 제작 : 사운드 플레이어 만들기(3)

앤디가이 2022. 5. 16.

사운드 플레이어 모듈의 화면 구성 및 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 해준다.(아래 그림 설정 방법 참고)

SoundPlayer 화면 구성
SoundPlayer 화면 구성

  - BGM GameObject에는 Audio Source 스크립트를 Add Component 해준다.(아래 그림 설정 방법 참고)

Bgm GameObject 설정
Bgm GameObject 설정

 

 - Effect GameObject에는 Audio Source와 Sound Object 컴포넌트를 Add 해준다.

Effect GameObject 설정
Effect GameObject 설정

 

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에 선언하여, 관리해 주자.

 - 사운드에 추가적인 기능이 필요하면 확장해서 사용하면 된다.

 

 

 

 

댓글