Saver
Coding Style wiki
Saver 是 SaverSystem 的抽象儲存器基類 (實作 ISaver、IDisposable),定義字串/整數/浮點數的基本鍵值存取抽象方法 (由子類決定儲存後端),並提供以文本形式儲存的 Data Map 功能 (多筆 key value 數據打包於單一字串鍵中,具解析緩存);內建實作有 PlayerPrefsSaver 與 EditorPrefsSaver,也可繼承自行擴展。
| 命名空間 | OxGKit.SaverSystem |
| 類型 | public abstract class Saver : ISaver, IDisposable |
| 原始碼 | Saver.cs、ISaver.cs |
using OxGKit.SaverSystem;
快速上手
using OxGKit.SaverSystem;
// 建立儲存器 (以內建 PlayerPrefsSaver 為例)
Saver saver = new PlayerPrefsSaver();
// 基本存取
saver.SaveInt("language", 2);
int language = saver.GetInt("language", 0);
// 文本形式儲存 (單一 contentKey 中儲存多筆 key value 數據)
saver.SaveData("appPrefs", "lastLogin", "2026-07-29");
string lastLogin = saver.GetData("appPrefs", "lastLogin", null);
通用規則
ISaver 介面
public interface ISaver
{
void SaveString(string key, string value);
string GetString(string key, string defaultValue = "");
void SaveInt(string key, int value);
int GetInt(string key, int defaultValue = 0);
void SaveFloat(string key, float value);
float GetFloat(string key, float defaultValue = 0f);
bool HasKey(string key);
void DeleteKey(string key);
void DeleteAll();
}
Saver 的基本存取方法皆為 abstract (對應 ISaver 介面),由子類覆寫 決定儲存後端;文本數據功能 (SaveData / GetData / DeleteData / DeleteContext) 則由基類實作,任何子類皆可直接使用。
文本數據格式
SaveData 會將多筆數據以每行一筆 key value 的格式,儲存於單一字串鍵 (contentKey) 的文本內容中:
# 以 '#' 開頭的行視為註解
lastLogin 2026-07-29
resolution 1920x1080
重要 每行以第一個空格分隔 key 與 value:key 不可包含空格;value 可包含空格,但不可包含換行 (逐行解析)。
提醒 建議重複使用同一個 Saver 實例,GetData 的解析緩存以實例為單位,每次重新建立實例會失去緩存效果。