usoundbase
USoundBase
🎮 Unreal Engine - USoundBase
🏛 定义
USoundBase 是 所有声音资源的基类,用于表示声音数据的抽象。
它本身不能直接播放,一般通过其子类(如 USoundWave、USoundCue)或与 UAudioComponent、UGameplayStatics 配合使用来实现音频播放。
📦 类继承
UObject
└── USoundBase
└── USoundWave
└── USoundCue
⚡ 关键特性
- 📦 声音播放的抽象基类
- 🛠️ 可被
UAudioComponent或UGameplayStatics::PlaySound...播放 - 🎶 子类扩展功能:
USoundWave(存储原始音频数据)、USoundCue(可配置复杂音效逻辑) - 🔗 可用于 提示音、背景音乐、环境音效 等场景
⚙️ 常见配置
Duration:音频长度(秒)IsLooping:是否循环播放VolumeMultiplier:音量倍增系数PitchMultiplier:音高调节AttenuationSettings:音效衰减(空间化)设置ConcurrencySettings:并发规则(同一音效的播放限制)
🛠️ 使用方法
📚 基础播放
| |
📚 三维空间播放
| |
📚 使用 AudioComponent
| |
🏊 典型应用场景
- 🎶 背景音乐:持续循环播放
- 🔔 UI 按钮音效:通过
PlaySound2D播放 - 🌍 环境音效:在场景中基于位置播放
- 🎯 武器/技能音效:随 Actor 绑定并动态触发
🤖 常见子类与用途
- USoundWave 🎶
- 用于存储实际的声音数据(WAV、MP3 等导入资源)
- USoundCue 🛠️
- 用于组合多个音效(混合、延迟、随机化等)
- 通过 Sound Cue Editor 制作复杂音效逻辑
❌ 常见问题与注意事项
- ❌ 直接使用
USoundBase无法播放,需通过USoundWave或USoundCue - ❌ 大量同时播放音效会引起 性能问题,需合理配置
ConcurrencySettings - ✅ 使用
AttenuationSettings可实现 3D 声音定位与距离衰减 - ✅ 背景音乐建议 单独管理(例如专门的 MusicManager 类)
📝 小结
- ✅
USoundBase是 音效系统的基类,不能直接使用 - ✅ 常见子类:
USoundWave(单一音频)、USoundCue(复杂逻辑) - ✅ 通过
UGameplayStatics或UAudioComponent来实际播放 - ✅ 常用于背景音乐、UI 音效、环境音、角色/武器音效