Разница между классами SoundEffect и SoundEffectInstance - PullRequest
7 голосов
/ 31 марта 2011

Как и в вопросе, я не понимаю, в чем разница между использованием этих классов. Каковы преимущества и ограничения каждого класса. Я прочитал много уроков и до сих пор не могу решить, что мне делать.

Чтобы было понятнее, у меня есть AudioModule, AudioEmitterComponent и AudioListenerComponent. (Eninge нашей игры основан на компоненте. Когда вы создаете объект, который является источником некоторых звуков (monster или sth), я добавляю компонент эмиттера ... и у меня тогда возникают проблемы. Я не могу понять, как это сделать лучше всего. Сначала я хотел, чтобы Audio Module получил List, то же самое для слушателей (а также списки для wave и soundbanks). Теперь у меня возникла проблема не с самим кодированием (на данный момент), а с концепцией что, где, когда, почему. Любой идеи ценны :)

1 Ответ

13 голосов
/ 31 марта 2011

Думайте о SoundEffect как о звуковом файле.Вы можете загрузить их, используя менеджер контента.

и SoundEffectInstance как программу, воспроизводящую звуковой файл.

SoundEffect имеет метод Play.Это просто для удобства.Внутренне это создает SoundEffectInstance, проигрывает его, а затем очищает, когда он заканчивается.(Известный как «Огонь и забудь».)

При использовании SoundEffectInstance (который вы создаете с помощью SoundEffect.CreateInstance) вам нужно управлять всем этим самостоятельно - преимущество в том, что вы можете манипулировать свойствамизвук (громкость и т. д.) во время воспроизведения звука.Вы также можете зациклить звук, остановить или приостановить часть пути и т. Д.

Когда вы закончите со своим SoundEffectInstance, не забудьте Dispose() его!

Другая вещьВы можете сделать с помощью SoundEffectInstance (что полностью необязательно ) применить к нему 3D-эффект.Это дает вам простой способ «разместить» звук в трехмерном пространстве.Вы применяете 3D-эффект, используя SoundEffectInstance.Apply3D (предоставляя ему слушателя и излучателя, которые предоставляют информацию о камере и источнике звука).Точную информацию об этом лучше оставить в статье " Применение трехмерного позиционного эффекта к звуку " в MSDN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...