Files
zeling_v2/Assets/Scripts/Core/GlobalSettingsSO.cs
2026-05-13 09:19:54 +08:00

64 lines
2.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using UnityEngine;
using BaseGames.Core.Events;
namespace BaseGames.Core
{
/// <summary>
/// 游戏全局设置数据(运行时值)。
/// </summary>
[System.Serializable]
public class GlobalSettingsData
{
public float MasterVolume = 1f;
public float BGMVolume = 0.8f;
public float SFXVolume = 1f;
public float AmbientVolume = 0.8f;
public bool VSync = true;
public int TargetFPS = 60;
public bool FullScreen = true;
public string Language = "zh-CN";
public bool ShowSpeedrunTimer = false;
}
/// <summary>
/// 全局设置默认值 SO资产Assets/Data/Settings/SET_GlobalSettings.asset
/// </summary>
[CreateAssetMenu(menuName = "Settings/GlobalSettings")]
public class GlobalSettingsSO : ScriptableObject
{
[Header("Audio")]
public float DefaultMasterVolume = 1f;
public float DefaultBGMVolume = 0.8f;
public float DefaultSFXVolume = 1f;
public float DefaultAmbientVolume = 0.8f;
[Header("Display")]
public bool DefaultVSync = true;
public int DefaultTargetFPS = 60;
public bool DefaultFullScreen = true;
[Header("Language")]
public string DefaultLanguage = "zh-CN";
[Header("Speedrun")]
public bool ShowSpeedrunTimer = false;
/// <summary>将 SO 默认值填入 GlobalSettingsData。</summary>
public GlobalSettingsData CreateDefault() => new GlobalSettingsData
{
MasterVolume = DefaultMasterVolume,
BGMVolume = DefaultBGMVolume,
SFXVolume = DefaultSFXVolume,
AmbientVolume = DefaultAmbientVolume,
VSync = DefaultVSync,
TargetFPS = DefaultTargetFPS,
FullScreen = DefaultFullScreen,
Language = DefaultLanguage,
ShowSpeedrunTimer = ShowSpeedrunTimer,
};
}
}