- components: 修复英文标题为中文,添加缺失组件文档 - 新增 camera-component, light-component, audio-source-component, audio-listener-component 类总览 - 修复 get-position.md 格式 - 更新 components.md 模块总览 - scene: 修复方法文档格式,新增缺失方法 - 修复 find.md, create-game-object.md 英文标题 - 新增 FindByID, SerializeToString, DeserializeFromString 方法文档 - 更新 scene.md 类总览方法列表
4.0 KiB
4.0 KiB
AudioSourceComponent
命名空间: XCEngine::Components
类型: class
头文件: XCEngine/Components/AudioSourceComponent.h
描述: 音频源组件,负责声音播放、3D 空间化、衰减和多普勒效应。
概述
AudioSourceComponent 是 XCEngine ECS 系统中的音频源组件,用于在场景中播放声音。它支持 3D 空间化、声音衰减、多普勒效应、混响区域混合等功能。该组件需要配合 AudioListenerComponent 使用来接收声音并进行音频处理。
公共方法
播放控制
| 方法 | 描述 |
|---|---|
Play |
开始播放音频 |
Pause |
暂停播放 |
Stop |
停止播放 |
IsPlaying |
检查是否正在播放 |
IsPaused |
检查是否已暂停 |
音频剪辑
| 方法 | 描述 |
|---|---|
SetClip |
设置音频剪辑 |
GetClip |
获取当前音频剪辑 |
音频属性
| 方法 | 描述 |
|---|---|
SetVolume |
设置音量 |
GetVolume |
获取音量 |
SetPitch |
设置音调 |
GetPitch |
获取音调 |
SetPan |
设置平移 |
GetPan |
获取平移 |
SetLooping |
设置循环播放 |
IsLooping |
检查是否循环播放 |
3D 空间化
| 方法 | 描述 |
|---|---|
SetSpatialize |
设置是否启用 3D 空间化 |
IsSpatialize |
检查是否启用 3D 空间化 |
Set3DParams |
设置 3D 音频参数 |
Get3DParams |
获取 3D 音频参数 |
SetDopplerLevel |
设置多普勒效应等级 |
GetDopplerLevel |
获取多普勒效应等级 |
SetSpread |
设置扩散角度 |
GetSpread |
获取扩散角度 |
SetReverbZoneMix |
设置混响区域混合 |
GetReverbZoneMix |
获取混响区域混合 |
输出混音器
| 方法 | 描述 |
|---|---|
SetOutputMixer |
设置输出混音器 |
GetOutputMixer |
获取输出混音器 |
播放时间
| 方法 | 描述 |
|---|---|
SetTime |
设置播放位置 |
GetTime |
获取当前播放位置 |
GetDuration |
获取音频总时长 |
能量检测
| 方法 | 描述 |
|---|---|
GetEnergy |
获取当前能量值 |
StartEnergyDetect |
开始能量检测 |
StopEnergyDetect |
停止能量检测 |
IsEnergyDetecting |
检查是否正在能量检测 |
使用示例
#include <XCEngine/Components/AudioSourceComponent.h>
#include <XCEngine/Components/GameObject.h>
#include <XCEngine/Resources/AudioClip/AudioClip.h>
using namespace XCEngine::Components;
void PlaySound(GameObject* audioObject) {
auto audioSource = audioObject->AddComponent<AudioSourceComponent>();
audioSource->SetVolume(0.8f);
audioSource->SetPitch(1.0f);
audioSource->SetLooping(false);
audioSource->SetSpatialize(true);
audioSource->Play();
}
void Setup3DAudio(GameObject* audioObject) {
auto audioSource = audioObject->AddComponent<AudioSourceComponent>();
Audio::Audio3DParams params;
params.dopplerLevel = 1.0f;
params.spread = 0.0f;
params.reverbZoneMix = 1.0f;
audioSource->Set3DParams(params);
}
相关文档
- Components 模块总览 - Components 模块总览
- Component - 组件基类
- AudioListenerComponent - 音频监听组件