音频发射器
初级 程序员 设计人员
音频发射器组件会发射用于创建空间化音频的音频。你可以将它添加到任何实体上。
当音频监听器靠近或远离音频发射器时,声音的音调和音量会发生变化。
Note
场景中至少需要有一个 AudioListenerComponent,才能听到音频发射器发出的音频。
1. 设置音频发射器资产
在场景视图中,选择要作为音频发射器的实体。

在属性网格中,点击添加组件并选择音频发射器(Audio Emitter)。

现在我们需要为发射器添加音频。
在音频发射器下,点击
(添加),并为该音频指定名称。
从资产视图中拖放一个音频资产到刚添加的音频上:

也可以点击
(选择资产)。
然后选择一个音频资产:

重复步骤 3 和 4,根据需要添加任意多个音频资产。
配置该音频发射器的属性。

| 属性 | 说明 |
|---|---|
| 使用 HRTF(Use HRTF) | 启用头部相关传输函数(HRTF)。启用后,声音听起来像是来自 3D 空间中的某个特定点,从而合成双耳音频。更多信息请参见 HRTF。 |
| 方向系数(Directional factor) | 音频的方向性强弱,取值从 0(最小)到 1(最大)。设置为 0 时,音频会向所有方向发射。你可以用滑块或数值来控制。 |
| 环境(Environment) | 音频的混响类型,用于模拟真实环境的混响效果(小、中、大或室外)。 |
2. 创建脚本以播放音频
现在我们需要创建一个脚本来播放和配置音频资产。
在脚本中,为你想在脚本中使用的每个声音实例化一个 AudioEmitterSoundController。
例如,假设我们有两个声音 MySound1 和 MySound2:
AudioEmitterComponent audioEmitterComponent = Entity.Get<AudioEmitterComponent>(); AudioEmitterSoundController mySound1Controller = audioEmitterComponent["MySound1"]; AudioEmitterSoundController mySound2Controller = audioEmitterComponent["MySound2"];使用以下 AudioEmitterSoundController 属性和方法来播放和配置音频:
| 属性 / 方法 | 说明 |
|---|---|
| IsLooping | 循环播放音频。如果 PlayAndForget() 设置为 true,则此属性无效。 |
| Pitch | 获取或设置声音音调(频率)。对空间化音频使用时请谨慎。 |
| PlayState | 获取音频发射器声音控制器的当前状态。 |
| Volume | 音频的音量。 |
| Pause() | 暂停音频。 |
| Play() | 播放音频。 |
| PlayAndForget() | 播放一次音频,然后清除内存。适用于枪声等短音效。会覆盖 IsLooping。 |
| Stop() | 停止音频。 |
例如:
mySound1Controller.IsLooping = true;
mySound1Controller.Pitch = 2.0f;
mySound1Controller.Volume = 0.5f;
mySound1Controller.Play();
该声音将以原始音调的两倍和原始音量的一半循环播放。更多信息请参阅 AudioEmitterSoundController Stride API 文档。
3. 将脚本添加到音频发射器实体
Game Studio 会将该脚本列为添加组件下的一个组件。将脚本添加到音频发射器实体上。
在场景视图中,选择要作为音频发射器的实体。

点击添加组件并选择该脚本。
