92 lines
2.8 KiB
C#
92 lines
2.8 KiB
C#
using Framework;
|
|
using Gameplay.Performance;
|
|
using UnityEngine;
|
|
public class GameSettingManager
|
|
{
|
|
private static GameSettingManager instance;
|
|
public static GameSettingManager Instance
|
|
{
|
|
get
|
|
{
|
|
if (instance == null)
|
|
{
|
|
CreateInstance();
|
|
}
|
|
return instance;
|
|
}
|
|
}
|
|
|
|
public static void CreateInstance()
|
|
{
|
|
if (instance != null)
|
|
{
|
|
return;
|
|
}
|
|
instance = new GameSettingManager();
|
|
}
|
|
|
|
public GameSettingData SettingData;
|
|
|
|
private GameSettingData _defaultSettingData;
|
|
|
|
public void Init()
|
|
{
|
|
_defaultSettingData = new GameSettingData();
|
|
_defaultSettingData.PerformanceID = PerformanceManager.instance.performanceId;
|
|
|
|
SettingData = StorageMgr.Instance.GetStorage<GameSettingData>("SettingData");
|
|
|
|
if (SettingData.PerformanceID == 0)
|
|
SettingData.PerformanceID = _defaultSettingData.PerformanceID;
|
|
|
|
ChangeGameSettings();
|
|
}
|
|
|
|
public void ChangeGameSettings()
|
|
{
|
|
AudioManager.Instance.GlobalMusicVolume = SettingData.BGMValue;
|
|
AudioManager.Instance.GlobalSoundsVolume = SettingData.EffectValue;
|
|
|
|
//TODO 开启格子 语音
|
|
|
|
PerformanceManager.SetPerformance(GetPerformanceConfig());
|
|
PerformanceManager.instance.SetFrameRate(SettingData.FrameRate);
|
|
|
|
//保存至本地
|
|
StorageMgr.Instance.SyncForce = true;
|
|
}
|
|
|
|
private PerformanceData GetPerformanceConfig()
|
|
{
|
|
var data = new PerformanceData();
|
|
if (TableManager.Instance.Tables.PerformanceConfig.DataMap.TryGetValue(SettingData.PerformanceID, out var pConfig))
|
|
{
|
|
data.enableShadow = pConfig.EnableShadow;
|
|
data.enablePostOutline = pConfig.EnablePostoutline;
|
|
data.enableTireMark = pConfig.EnableTireMark;
|
|
data.useSimpleShader = pConfig.UseSimpleShader;
|
|
data.resolution = pConfig.Resolution;
|
|
data.targetFrameRate = pConfig.TargetFps;
|
|
data.enableHDR = pConfig.EnableHDR;
|
|
data.enableCloth = pConfig.EnableCloth;
|
|
data.enableBulletTail = pConfig.EnableBulletTail;
|
|
}
|
|
|
|
return data;
|
|
}
|
|
|
|
public void RevertDefault()
|
|
{
|
|
SettingData.PerformanceID = _defaultSettingData.PerformanceID;
|
|
SettingData.FrameRate = _defaultSettingData.FrameRate;
|
|
SettingData.BGMValue = _defaultSettingData.BGMValue;
|
|
SettingData.EffectValue = _defaultSettingData.EffectValue;
|
|
SettingData.TalkValue = _defaultSettingData.TalkValue;
|
|
SettingData.IsOpenGrid = _defaultSettingData.IsOpenGrid;
|
|
ChangeGameSettings();
|
|
//保存至本地
|
|
StorageMgr.Instance.SyncForce = true;
|
|
}
|
|
|
|
}
|