AudioSettings.dspTime

Jinho Lee·2025년 2월 13일
0

AudioSettings.dspTime

  • Unity의 dspTime은 오디오 시스템에서 처리된 실제 오디오 샘플 수에 기반하여 반환되는 double 값의 초 단위 시간이다.

  • 주로 사용되는 Time.timefloat 값보다 훨씬 정확하고, 실제 시간에 가깝다.

  • AudioSourcePlayScheduled 메소드에 들어가는 매개변수가 dspTime 값이며, 아래와 같이 활용할 수 있다.

    private AudioSource audioSource;
    
    void Start()
    {
        audioSource = GetComponent<AudioSource>();
    
        double curDspTime = AudioSettings.dspTime;
    
        audioSource.PlayScheduled(curDspTime + 5d);
        // 5초 뒤에 audioSource를 플레이한다.
    }
  • 이로써 FrameRate(프레임 속도)의 영향을 받지않고, 오디오 시스템에 기반하여 5초뒤에 음악을 재생할 수 있다.

  • 아래와 같이 시간을 계산하는 것으로 두 오디오 소스를 연달아 재생할 수도 있다.

    [SerializeField] private AudioSource audioSource1;
    [SerializeField] private AudioSource audioSource2;
    
    void Start()
    {
        double curDspTime = AudioSettings.dspTime;
        double audioSource1Duration = (double)audioSource1.clip.samples / audioSource1.clip.frequency;
        // 샘플 수 / 빈도 수로 audioSource1의 오디오 클립 길이를 구한다.
    
        audioSource1.PlayScheduled(curDspTime);
        audioSource2.PlayScheduled(curDspTime + audioSource1Duration);
        // 현재 시각에서 audioSource1 재생이 끝난 후에 재생한다.
    }

참고

0개의 댓글

관련 채용 정보