Table of Contents

音频发射器

初级 程序员 设计人员

音频发射器组件会发射用于创建空间化音频的音频。你可以将它添加到任何实体上。

当音频监听器靠近或远离音频发射器时,声音的音调和音量会发生变化。

Note

场景中至少需要有一个 AudioListenerComponent,才能听到音频发射器发出的音频。

1. 设置音频发射器资产

  1. 在场景视图中,选择要作为音频发射器的实体。

    选择实体

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

    添加 AudioEmitter 组件

    现在我们需要为发射器添加音频。

  3. 在音频发射器下,点击 绿色加号按钮(添加),并为该音频指定名称。

    添加新的声音条目

  4. 从资产视图中拖放一个音频资产到刚添加的音频上:

    拖放音频资产

    也可以点击 手形图标(选择资产)。

    拾取资产

    然后选择一个音频资产:

    选择音频资产

  5. 重复步骤 3 和 4,根据需要添加任意多个音频资产。

  6. 配置该音频发射器的属性。

    音频发射器属性

属性 说明
使用 HRTF(Use HRTF) 启用头部相关传输函数(HRTF)。启用后,声音听起来像是来自 3D 空间中的某个特定点,从而合成双耳音频。更多信息请参见 HRTF。
方向系数(Directional factor) 音频的方向性强弱,取值从 0(最小)到 1(最大)。设置为 0 时,音频会向所有方向发射。你可以用滑块或数值来控制。
环境(Environment) 音频的混响类型,用于模拟真实环境的混响效果(小、中、大或室外)。

2. 创建脚本以播放音频

现在我们需要创建一个脚本来播放和配置音频资产。

  1. 在脚本中,为你想在脚本中使用的每个声音实例化一个 AudioEmitterSoundController。

    例如,假设我们有两个声音 MySound1 和 MySound2:

     AudioEmitterComponent audioEmitterComponent = Entity.Get<AudioEmitterComponent>();
     AudioEmitterSoundController mySound1Controller = audioEmitterComponent["MySound1"];
     AudioEmitterSoundController mySound2Controller = audioEmitterComponent["MySound2"];
    
  2. 使用以下 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 会将该脚本列为添加组件下的一个组件。将脚本添加到音频发射器实体上。

  1. 在场景视图中,选择要作为音频发射器的实体。

    选择实体

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

    添加音频脚本

另请参阅