就像问题一样,我没有得到使用这些类之间的区别。每个班级的优点和局限是什么。我阅读了很多教程,仍然无法决定我该怎么办。
为了使事情更清楚,我得到了AudioModule,AudioEmitterComponent和AudioListenerComponent。 (我们的游戏是基于组件。当你创建和对象是一些声音的来源(怪物或某事物)时,我添加发射器组件..然后我遇到了问题。我无法弄清楚如何做到最好。首先,我希望音频模块能够获得List,同样适用于听众(以及wave和soundbanks的列表)。现在我遇到了问题,不是编码本身(目前),而是概念是什么,何地,何时,为什么。想法很有价值:)
答案 0 :(得分:13)
将SoundEffect
视为声音文件。您可以使用内容管理器加载这些内容。
SoundEffectInstance
作为播放声音文件的程序。
SoundEffect
有Play
方法。这只是为了方便。这内部的作用是创建一个SoundEffectInstance
,播放它,然后在它完成时进行清理。 (被称为“火与忘记”。)
当使用SoundEffectInstance
(您使用SoundEffect.CreateInstance
创建)时,您需要自己管理所有这些 - 优点是您可以在声音的同时操纵声音的属性(音量等)正在玩。您也可以循环播放声音,停止或暂停等等。
完成SoundEffectInstance
后,请不要忘记Dispose()
!
使用SoundEffectInstance
(完全可选)可以执行的另一项操作是对其应用3D效果。这为您提供了一种在3D空间中“放置”声音的简便方法。您使用SoundEffectInstance.Apply3D
应用 3D效果(给它一个监听器和一个发射器,提供有关摄像机和声源的信息)。有关详细信息最好留给MSDN上的“Applying a 3D Positional Effect to a Sound”文章。