64 lines
2.0 KiB
C#
64 lines
2.0 KiB
C#
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,
|
||
};
|
||
}
|
||
}
|