namespace GFramework.Game.Abstractions.setting.data;
///
/// 音频设置类,用于管理游戏中的音频配置
///
public class AudioSettings : ISettingsData
{
///
/// 获取或设置主音量,控制所有音频的总体音量
///
public float MasterVolume { get; set; } = 1.0f;
///
/// 获取或设置背景音乐音量,控制BGM的播放音量
///
public float BgmVolume { get; set; } = 0.8f;
///
/// 获取或设置音效音量,控制SFX的播放音量
///
public float SfxVolume { get; set; } = 0.8f;
///
/// 重置音频设置为默认值
///
public void Reset()
{
// 重置所有音量设置为默认值
MasterVolume = 1.0f;
BgmVolume = 0.8f;
SfxVolume = 0.8f;
}
///
/// 获取或设置设置数据的版本号
///
public int Version { get; private set; } = 1;
///
/// 获取设置数据最后修改的时间
///
public DateTime LastModified { get; } = DateTime.Now;
///
/// 从指定的数据源加载音频设置
///
/// 包含设置数据的源对象
public void LoadFrom(ISettingsData source)
{
// 检查数据源是否为音频设置类型
if (source is not AudioSettings audioSettings)
{
return;
}
// 将源数据中的各个音量设置复制到当前对象
MasterVolume = audioSettings.MasterVolume;
BgmVolume = audioSettings.BgmVolume;
SfxVolume = audioSettings.SfxVolume;
Version = audioSettings.Version;
}
}