usoundbase

USoundBase

🎮 Unreal Engine - USoundBase


🏛 定义

USoundBase所有声音资源的基类,用于表示声音数据的抽象。

它本身不能直接播放,一般通过其子类(如 USoundWaveUSoundCue)或与 UAudioComponentUGameplayStatics 配合使用来实现音频播放。


📦 类继承

UObject

└── USoundBase

    └── USoundWave

    └── USoundCue


⚡ 关键特性

  • 📦 声音播放的抽象基类
  • 🛠️ 可被 UAudioComponentUGameplayStatics::PlaySound... 播放
  • 🎶 子类扩展功能:USoundWave(存储原始音频数据)、USoundCue(可配置复杂音效逻辑)
  • 🔗 可用于 提示音、背景音乐、环境音效 等场景

⚙️ 常见配置

  • Duration:音频长度(秒)
  • IsLooping:是否循环播放
  • VolumeMultiplier:音量倍增系数
  • PitchMultiplier:音高调节
  • AttenuationSettings:音效衰减(空间化)设置
  • ConcurrencySettings:并发规则(同一音效的播放限制)

🛠️ 使用方法

📚 基础播放

1
UGameplayStatics::PlaySound2D(this, MySoundBase);

📚 三维空间播放

1
UGameplayStatics::PlaySoundAtLocation(this, MySoundBase, GetActorLocation());

📚 使用 AudioComponent

1
2
UAudioComponent* AudioComp = UGameplayStatics::SpawnSoundAttached(MySoundBase, RootComponent);
AudioComp->Play();

🏊 典型应用场景

  • 🎶 背景音乐:持续循环播放
  • 🔔 UI 按钮音效:通过 PlaySound2D 播放
  • 🌍 环境音效:在场景中基于位置播放
  • 🎯 武器/技能音效:随 Actor 绑定并动态触发

🤖 常见子类与用途

  • USoundWave 🎶
    • 用于存储实际的声音数据(WAV、MP3 等导入资源)
  • USoundCue 🛠️
    • 用于组合多个音效(混合、延迟、随机化等)
    • 通过 Sound Cue Editor 制作复杂音效逻辑

❌ 常见问题与注意事项

  • 直接使用 USoundBase 无法播放,需通过 USoundWaveUSoundCue
  • ❌ 大量同时播放音效会引起 性能问题,需合理配置 ConcurrencySettings
  • ✅ 使用 AttenuationSettings 可实现 3D 声音定位与距离衰减
  • ✅ 背景音乐建议 单独管理(例如专门的 MusicManager 类)

📝 小结

  • USoundBase音效系统的基类,不能直接使用
  • ✅ 常见子类:USoundWave(单一音频)、USoundCue(复杂逻辑)
  • ✅ 通过 UGameplayStaticsUAudioComponent 来实际播放
  • ✅ 常用于背景音乐、UI 音效、环境音、角色/武器音效