就像上面提到的,我不明白使用这些类有什么不同。每一类的优点和局限性是什么?我读了很多教程,但仍然不能决定我应该做什么。
为了让事情更清楚,我使用了AudioModule,AudioEmitterComponent和AudioListenerComponent。(我们的游戏边界是基于组件的。当你创建一些声音(怪物或者其他东西)的对象时,我添加了发射器组件。然后我就有麻烦了。我想不出怎样才能做得最好。首先,我想让音频模块获得列表,监听器也是如此(还有wave和soundbank的列表)。现在我遇到了问题,不是在编码本身(目前),而是在概念上,什么,在哪里,什么时候,为什么。任何想法都是有价值的:)
发布于 2011-03-31 20:15:43
把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“一文。
https://stackoverflow.com/questions/5499093
复制相似问题