동시에 여러 소리 재생

페이지 업데이트 :
페이지 생성 날짜 :

검증 환경

윈도우
  • 윈도우 11
Unity 에디터
  • 2021.3.3f1
입력 시스템 패키지
  • 1.3.0

이 팁의 전제 조건

이 팁에 대한 설명의 전제로 다음 설정이 미리 이루어졌습니다.

샘플에 포함 된 재료에 대해

음향 효과는 다음 사이트에서 차용합니다.

오디오 파일 정보

Unity의 표준 기능으로 재생할 수 있는 오디오 파일 포맷은 다음과 같습니다. 이 팁에서 사용되기 때문에 미리 준비하십시오.

  • WAV (.wav)
  • 오그보비스 (.ogg)
  • MPEG 레이어 3(.mp3)

자세한 내용은 공식 Unity 문서를 참조하십시오.

다중 동시 오디오 재생에 관하여

이전 팁에서는 AudioSource를 사용하여 오디오 파일을 재생했지만 단일 사운드와 여러 사운드를 만들려고 하면 이전 사운드가 사라졌습니다. 예를 들어, 게임에서 두 번의 폭발이 있는 경우 두 번째 폭발이 음향 효과를 생성할 때 첫 번째 음향 효과가 사라지는 것은 부자연스럽습니다. 이 섹션에서는 동일한 사운드를 서로 겹쳐서 여러 번 재생하는 방법에 대해 설명합니다.

오디오를 동시에 재생하는 단계

여기서는 새로운 프로젝트를 만든 시점부터 설명하겠지만, 유니티를 어느 정도 알고 있다면 관련 부분만 잘라서 외울 수 있습니다.

이번에는 버튼을 클릭할 때마다 음향 효과가 재생됩니다. 표시된 대로 UI를 만듭니다. 세부 사항은 적절하고 좋습니다.

사운드 파일을 프로젝트에 끌어다 놓아 추가합니다.

계층 구조에 오디오 소스를 추가합니다. 이 경우 오디오 클립을 AudioSource로 직접 설정하지 않습니다.

스크립트를 추가합니다. ButtonEvent 이름을 그대로 둡니다.

스크립트는 다음과 같습니다.

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  [SerializeField] private AudioSource AudioSource;

  /// <summary>音声データ。</summary>
  [SerializeField] private AudioClip AudioClip;

  public void OnClickPlay()
  {
    // オーディオを再生します
    AudioSource.PlayOneShot(AudioClip);
  }
}

AudioSource 이전 팁과 마찬가지로 오디오를 제어하기 위한 클래스라고 생각하면 됩니다.

AudioClip 는 오디오 데이터를 저장하는 클래스입니다. 여기에서 오디오 파일을 설정할 수 있습니다.

AudioSource.PlayOneShot 메서드에 인수로 전달하면 오디오 데이터를 재생할 수 있습니다 AudioClip . 이 메서드로 재생되는 오디오는 독립적으로 제어됩니다. 이 메서드를 다시 호출하면 이전 음성과 별도로 새 음성으로 재생됩니다. 따라서 이 메서드가 호출될 때마다 사운드를 다시 재생할 수 있습니다.

EventSystem에 스크립트를 첨부합니다.

"Audio Source(오디오 소스)"의 경우 계층 구조에 추가된 "Audio Source(오디오 소스)"를 설정합니다.

"오디오 클립"의 경우 프로젝트에서 오디오 파일을 설정합니다.

마지막으로 메서드를 단추의 클릭 이벤트로 설정합니다.

게임을 실행하고 버튼을 클릭합니다. 음향 효과가 재생될 것 같아요. 또한 재생 중에 버튼을 다시 클릭하면 이전 사운드가 사라지지 않고 새 사운드가 재생됩니다.

AudioClip 이러한 방식으로 이제 를 통해 오디오를 재생하여 동일한 사운드를 서로 겹쳐서 재생할 수 있습니다. 이렇게 하면 이전 사운드가 부자연스럽게 사라지지 않고 게임을 플레이할 수 있습니다.

AudioClip으로 플레이할 때의 단점

AudioClip 를 사용하여 재생하는 것으로 오디오를 서로 겹쳐서 재생할 수 있었지만 반대로 다음과 같은 단점이 발생합니다.

소리가 시끄러워집니다

버튼을 계속 클릭하면 알 수 있듯이 소리가 겹쳐지고 재생되는 하모니가 점점 커집니다. 예를 들어, 게임에서 공격이 적중할 때 음향 효과를 재생하려는 경우, 아무런 조치 없이 동시에 여러 히트가 발생하면 비정상적인 볼륨으로 재생될 수 있습니다.