유니티_unity
유니티: AudioSource 컴포넌트, Play PlayOneShot 차이점
코딩ABC
2025. 5. 25. 16:53
반응형
Unity에서 AudioSource 컴포넌트를 사용할 때 Play()와 PlayOneShot()은 모두 오디오를 재생하는 함수이지만, 사용 방식과 동작에 중요한 차이가 있습니다.
✅ Play()
- 설명: AudioSource에 설정된 AudioClip을 재생합니다.
- 전제 조건: AudioSource.clip에 오디오 클립이 미리 지정되어 있어야 합니다.
- 특징:
- 이전에 재생 중이던 사운드를 중지하고 새로운 사운드를 재생합니다.
- 같은 AudioSource에서 연속으로 소리를 겹쳐서 재생할 수는 없습니다.
- loop 설정을 통해 반복 재생이 가능합니다.
AudioSource audioSource = GetComponent(); audioSource.clip = myClip; audioSource.Play(); |
✅ PlayOneShot(AudioClip clip, float volumeScale = 1.0f)
- 설명: 입력으로 받은 AudioClip을 한 번만 재생합니다.
- 전제 조건: AudioSource.clip에 설정하지 않아도 됩니다.
- 특징:
- 기존에 재생 중인 오디오를 중단하지 않고도 새로운 사운드를 겹쳐서 재생할 수 있습니다.
- 같은 AudioSource에서 여러 소리를 동시에 겹쳐 재생하는 데 유용합니다.
- 반복 재생(loop)은 지원하지 않습니다.
- volumeScale을 통해 볼륨 조절 가능 (1.0 = 기본)
AudioSource audioSource = GetComponent(); audioSource.PlayOneShot(myClip); |
🎯 요약
기능Play()PlayOneShot()
재생 방식 | 지정된 clip 재생 | 인자로 전달된 clip 재생 |
중첩 재생 | 불가능 (중지 후 재생) | 가능 (겹쳐서 재생) |
반복 재생 | 가능 (loop = true) | 불가능 |
clip 설정 | AudioSource.clip 필요 | 함수 인자로 clip 전달 |
사용 예 | 배경음악, 긴 사운드 | 효과음, 짧은 사운드 |
필요한 상황에 맞게 두 메서드를 선택해서 사용하는 것이 좋습니다. 예를 들어:
- 배경음악: Play() (loop와 함께)
- 총소리, 버튼 클릭 등 효과음: PlayOneShot() (짧고 중첩 가능)

반응형