2011-03-31 3 views
5

질문과 마찬가지로, 나는 이러한 클래스를 사용하는 것의 차이점을 얻지 못합니다. 각 반의 장점과 한계는 무엇입니까? 많은 자습서를 읽었지만 여전히해야 할 일을 결정할 수 없습니다.SoundEffect와 SoundEffectInstance 클래스의 차이점

더 명확하게하기 위해 AudioModule, AudioEmitterComponent 및 AudioListenerComponent가 있습니다. (우리 게임의 구성 요소는 구성 요소를 기반으로합니다. 어떤 사운드 (괴물 또는 sth)의 소스 인 객체를 만들고 객체화하면 이미 터 구성 요소를 추가하고 문제가 발생합니다. 최선을 다하는 방법을 파악할 수 없습니다. 먼저 Audio Module에 리스너 (그리고 웨이브 및 사운드 뱅크의 목록)도 List를 갖기를 원했습니다. 이제는 문제가 발생했습니다. 지금은 코딩 자체가 아니라 (what now, where, when, why.) 개념을가집니다. 아이디어는 귀중합니다 :)

답변

10

소리 파일로 생각하십시오 SoundEffect. 콘텐츠 관리자를 사용하여로드 할 수 있습니다.

그리고 SoundEffectInstance은 사운드 파일을 재생하는 프로그램입니다.

SoundEffectPlay입니다. 이것은 단지 편의를위한 것입니다. 내부적으로 수행하는 작업은 SoundEffectInstance이며 재생 한 다음 작업이 완료되면 정리합니다.

(SoundEffect.CreateInstance으로 작성한) SoundEffectInstance을 사용하는 경우 모든 것을 직접 관리해야합니다. 즉, 소리의 속성 (볼륨 등)을 조작 할 수 있다는 것이 장점입니다. 소리가 나는 동안. 소리를 반복하거나 부분적으로 멈추거나 일시 중지 할 수도 있습니다.

SoundEffectInstance을 끝내면 Dispose()을 잊지 마세요!

SoundEffectInstance (별개로 )으로 할 수있는 또 다른 방법은 3D 효과를 적용하는 것입니다. 이렇게하면 사운드를 3D 공간에 "배치"하는 쉬운 방법을 제공합니다. SoundEffectInstance.Apply3D을 사용하여 3D 효과를에 적용합니다 (청취자와 카메라 및 사운드 소스에 대한 정보를 제공하는 이미 터를 제공). 이에 대한 자세한 내용은 MSDN의 "Applying a 3D Positional Effect to a Sound"문서에 맡기는 것이 가장 좋습니다.

관련 문제