07
30

PlayOneShot

PlayOneShot 메서드는 오디오 클립을 인자로 받아 해당 사운드를 한 번만 재생할 때 사용된다.
사운드 재생 시 다른 AudioSource의 작업을 방해하지 않는 특징이 있다.
따라서 PlayOneShot 메서드는 현재 AudioSource의 작동 중인 사운드를 중지하지 않고,
새로운 사운드를 재생한다.
이는 다른 사운드가 재생 중인 상태에서 추가적인 사운드를 재생하고자 할 때 유용하다.
재생이 끝나면 자동으로 AudioSource를 정리한다.
따라서 별도의 Stop 메서드 호출이 필요하지 않다.
총 발사 소리, 폭발 효과, 아이템을 주울 때의 사운드 등 특정 이벤트나 행동에 따라
재생되는 사운드를 처리할 때 주로 사용된다.
  • 예제 코드
using UnityEngine;

public class PlayOneShotExample : MonoBehaviour
{
    public AudioClip soundClip;
    private AudioSource audioSource;

    private void Start()
    {
        audioSource = GetComponent<AudioSource>();
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // PlayOneShot 함수로 사운드 클립을 재생
            audioSource.PlayOneShot(soundClip);
        }
    }
}

Play

Play 메서드는 AudioSource 컴포넌트가 연결된 게임 오브젝트에서 오디오를 재생한다.

PlayScheduled

PlayScheduled 함수는 특정 시간에 오디오 소스를 재생할 때 사용된다.
예를 들어, 특정 지연 시간 이후에 오디오를 재생하거나 특정 시간에 정확히 오디오를 재생할 수 있다.
  • 예제 코드
using UnityEngine;

public class PlayScheduledExample : MonoBehaviour
{
    public AudioClip soundClip;
    public double delayTime = 1.0;

    private double startTime;

    private void Start()
    {
        // 오디오 소스의 시작 시간을 현재 시간 + 지연 시간으로 설정
        startTime = AudioSettings.dspTime + delayTime;
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // PlayScheduled 함수로 사운드 클립을 지정된 시간에 재생
            AudioSource.PlayScheduled(soundClip, startTime);
        }
    }
}
위 예제 코드에서 AudioSettings.dspTime은 Unity 엔진에서 사용되는
디지털 신호 처리 시간(Digital Signal Processing Time)을 나타내는 속성이다.

이 값은 오디오 엔진의 현재 시간을 초 단위로 표현한 것으로,
오디오의 정확한 재생 타이밍과 시간 기반 오디오 이펙트를 제어하는 데 사용된다.

'유니티 개발 기술 > 사운드 디자인' 카테고리의 다른 글

AudioReverbZone의 다양한 속성  (0) 2023.07.30
AudioSource의 다양한 속성  (0) 2023.07.30
COMMENT