using UnityEngine; using System.IO; using YooAsset; using System; public class SettingsManager: Singleton { private GameSettings _currentSettings; public GameSettings CurrentSettings => _currentSettings; public GameSettings DefSetting = new GameSettings(); private string settingsPath; public SettingsManager() { settingsPath = Path.Combine(Application.persistentDataPath, "settings.json"); LoadSettings(); Debug.Log("SettingsManager 初始化完成"); } public void LoadSettings() { if (File.Exists(settingsPath)) { string json = File.ReadAllText(settingsPath); _currentSettings = JsonUtility.FromJson(json); } else { ResetToDefaultSettings(); } } public void SaveSettings() { string json = JsonUtility.ToJson(_currentSettings, true); File.WriteAllText(settingsPath, json); } #region 图像 #endregion 图像 #region 其他 #endregion 其他 public void ResetToDefaultSettings() { _currentSettings = DefSetting; SaveSettings(); } } [System.Serializable] public class GameSettings { public string serverAddress ; public float masterVolume = 0.75f; //public int qualityLevel = 2; //public bool vsyncEnabled = true; //public float shadowDistance = 50f; //public int antiAliasing = 2; //public bool bloomEnabled = true; //public float renderScale = 1.0f; public GraphicsSetting graphicsSettings; public int resolutionIndex = 0; public bool fullscreen = true; public bool borderless = false; public int displayIndex = 0; } public interface ISettingsPanel { void ApplySettings(); void ResetToDefault(); }