ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Unity] 유니티에서 오디오 파일 재생하기
    Unity 2020. 4. 9. 22:15

    유니티에서는 아주 간단한 방법으로 오디오 파일을 재생할 수 있는데, 오디오 재생에 필요한 요소는 단 두 가지로  AudioSource와 AudioListener이다. 


    AudioListener는 게임 신에서 발생하는 소리를 듣기 위한 컴포넌트이다. 사실 이 컴포넌트는 MainCamera에 기본적으로 붙어 있기에 따로 추가하지 않아도 된다.

     

    AudioSource는 소리를 발생시키는 컴포넌트이다. 유니티 GUI를 통해 원하는 게임 오브젝트에 추가하거나 스크립트에서 생성하여 사용할 수 있다. GUI에 컴포넌트를 추가해 소리를 재생하는 방법과 스크립트를 통해 재생하는 방법은 각각 다음과 같다.

     

     

    GUI를 사용한 재생

     

    먼저 mp3등 오디오 파일을 유니티의 Assets 폴더 밑에 복사한다. 이후 유니티 GUI로 들어가면 유니티가 알아서 해당 오디오 파일을 Vorbis로 변환해 리소스로 추가해 준다. 아래 그림은 sample.mp3 파일이 임포트된 경우이다.

     

    이후 원하는 게임 오브젝트에 Add Component 버튼을 통해 Audio->AudioSource를 추가한다. 그리고 해당 Audio Source 컴포넌트의 AudioClip에 위에서 임포트한 sample을 드래그 드랍으로 지정한다. 다음 그림과 같다.

     

     

    컴포넌트 속성에 Play On Awake가 체크되어 있다면 이 오브젝트가 화면에 등장하는 순간 자동으로 음원이 재생된다. 플레이 모드에서 확인이 가능하다.

     

    플레이 모드에서 가끔 소리가 나지 않는 경우가 나타나는데, 가장 먼저 플레이모드 우상단의 mute가 켜져 있는지 확인한다.

     

     

    mute가 켜져 있지 않아도 소리가 나지 않는 경우도 있는데, 이 때는 백약이 무효이므로 유니티를 종료하고 재시작하면 해결된다.

     

     

    스크립트를 사용한 재생

     

    사실 원하는 타이밍에 원하는 음원을 재생하기 위해서는 스크립트가 필요하다. 스크립트가 음원이 재생된 오브젝트에 붙어 있다고 가정하면 다음과 같은 스크립트로 오디오를 로드한다.

     

    // 오디오 소스 생성해서 추가
    AudioSource audioSource = gameObject.AddComponent<AudioSource>();
    
    // 뮤트: true일 경우 소리가 나지 않음
    audioSource.mute = false;
    
    // 루핑: true일 경우 반복 재생
    audioSource.loop = false;
    
    // 자동 재생: true일 경우 자동 재생
    audioSource.playOnAwake = false;

     

    이후 소리가 필요한 시점이 에 다음 스크립트로 소리를 플레이한다.

     

    audioSource.Play();

     

    소리를 멈추고 싶을 때는 다음과 같이 한다.

     

    audioSource.Stop();

     

     

    Fin.

     

     

    반응형

    댓글

Calvin's Memo