模塊介紹
Coding Style wiki
基本說明
簡易儲存系統,支持以文本形式儲存 (Text-Content Data Map),預設提供 EditorPrefsSaver、PlayerPrefsSaver,可自行擴展 (自定義 Saver)。
- 版本:v1.0.2 (
com.michaelo.oxgkit.saversystem) - 命名空間:
OxGKit.SaverSystem
提醒 本模組定位為設定值與小型數據的鍵值儲存 (例如語系、音量、偏好設定等);大型/結構化/需版本管理的存檔數據,建議採用更完整的儲存方案。
應用說明
儲存器架構
ISaver:定義基本鍵值存取介面 (SaveString/GetString、SaveInt/GetInt、SaveFloat/GetFloat、HasKey/DeleteKey/DeleteAll)。Saver:抽象基類 (實作ISaver),基本存取方法皆為抽象方法 (由子類決定儲存後端),並額外提供文本形式儲存數據功能 (SaveData/GetData/DeleteData/DeleteContext/ParsingDataMap),具備解析緩存 (Dirty Flag) 機制。- 內建儲存器:
| 儲存器 | 儲存後端 | 命名空間 | 適用 |
|---|---|---|---|
| PlayerPrefsSaver | UnityEngine.PlayerPrefs | OxGKit.SaverSystem | 運行時 (遊戲設定) |
| EditorPrefsSaver | UnityEditor.EditorPrefs | OxGKit.SaverSystem.Editor | 僅編輯器 (編輯器工具) |
注意 EditorPrefsSaver 位於 Editor Assembly (OxGKit.SaverSystem.Editor),僅能於編輯器腳本中引用,不可用於運行時腳本。
文本形式儲存 (Data Map)
Saver 支持將多筆 key value 數據打包儲存於單一字串鍵 (contentKey) 中,儲存格式為每行一筆 key value:
# 以 '#' 開頭的行視為註解
lastLogin 2026-07-29
resolution 1920x1080
- 每行以第一個空格分隔 key 與 value:key 不可包含空格;value 可包含空格,但不可包含換行 (逐行解析)。
#開頭的行視為註解 (解析時忽略),因此此格式也適合作為可手動編輯的配置文件格式。GetData具備解析緩存 (Dirty Flag),僅於SaveData/DeleteData後才會重新解析文本。
注意 無 bool 與物件 API,bool 可以 int (0/1) 儲存;物件可自行序列化為 JSON 字串後透過 SaveString 儲存。