using UnityEngine; using System.Collections.Generic; public static class SaveSystem { // ============================================================ // BASIC TYPES // ============================================================ public static void SaveInt(string key, int value) { PlayerPrefs.SetInt(key, value); PlayerPrefs.Save(); } public static int LoadInt(string key, int defaultValue = 0) { return PlayerPrefs.GetInt(key, defaultValue); } public static void SaveFloat(string key, float value) { PlayerPrefs.SetFloat(key, value); PlayerPrefs.Save(); } public static float LoadFloat(string key, float defaultValue = 0f) { return PlayerPrefs.GetFloat(key, defaultValue); } public static void SaveBool(string key, bool value) { PlayerPrefs.SetInt(key, value ? 1 : 0); PlayerPrefs.Save(); } public static bool LoadBool(string key, bool defaultValue = false) { return PlayerPrefs.GetInt(key, defaultValue ? 1 : 0) == 1; } public static void SaveString(string key, string value) { PlayerPrefs.SetString(key, value); PlayerPrefs.Save(); } public static string LoadString(string key, string defaultValue = "") { return PlayerPrefs.GetString(key, defaultValue); } // ============================================================ // JSON LIST / ARRAY SAVE // ============================================================ public static void SaveList(string key, List list) { string json = JsonUtility.ToJson(new Wrapper(list)); PlayerPrefs.SetString(key, json); PlayerPrefs.Save(); } public static List LoadList(string key) { string json = PlayerPrefs.GetString(key, ""); if (string.IsNullOrEmpty(json)) return new List(); Wrapper wrapper = JsonUtility.FromJson>(json); return wrapper.items ?? new List(); } [System.Serializable] private class Wrapper { public List items; public Wrapper(List list) { items = list; } } // ============================================================ // DELETE SYSTEM // ============================================================ public static void DeleteKey(string key) { PlayerPrefs.DeleteKey(key); } public static void DeleteAll() { PlayerPrefs.DeleteAll(); } // ============================================================ // SAFETY BACKUP // ============================================================ public static void Backup(string key) { if (!PlayerPrefs.HasKey(key)) return; string val = PlayerPrefs.GetString(key, ""); PlayerPrefs.SetString(key + "_backup", val); PlayerPrefs.Save(); } public static void RestoreBackup(string key) { if (!PlayerPrefs.HasKey(key + "_backup")) return; string val = PlayerPrefs.GetString(key + "_backup", ""); PlayerPrefs.SetString(key, val); PlayerPrefs.Save(); } // ============================================================ // MANUAL SAVE (Performans İyileştirmesi) // ============================================================ /// /// Tüm PlayerPrefs değişikliklerini tek seferde diske kaydeder. /// Çoklu set işlemlerinden sonra çağırılması önerilir. /// public static void Save() { PlayerPrefs.Save(); } }