EditorPrefsSaver
Coding Style wiki
EditorPrefsSaver 是 SaverSystem 內建的編輯器儲存器 (繼承 Saver),以 UnityEditor.EditorPrefs 作為儲存後端,適合儲存編輯器工具的偏好設定 (EditorWindow、自定義 Inspector 等);並可直接使用基類提供的文本數據功能 (Data Map)。
| 命名空間 | OxGKit.SaverSystem.Editor |
| 類型 | public class EditorPrefsSaver : Saver |
| 原始碼 | EditorPrefsSaver.cs |
using OxGKit.SaverSystem;
using OxGKit.SaverSystem.Editor;
重要 EditorPrefsSaver 位於 Editor Assembly (OxGKit.SaverSystem.Editor),僅能於編輯器腳本 (Editor 資料夾或 Editor asmdef) 中引用,不可用於運行時腳本 (發布時會編譯失敗)。
快速上手
using OxGKit.SaverSystem;
using OxGKit.SaverSystem.Editor;
// 於編輯器工具中建立儲存器 (EditorPrefs 後端)
Saver editorSaver = new EditorPrefsSaver();
// 儲存編輯器工具偏好設定
editorSaver.SaveString("MyProject.MyTool.lastExportPath", "Assets/Exports");
string path = editorSaver.GetString("MyProject.MyTool.lastExportPath", "");
通用規則
適用範圍
| 儲存器 | 儲存後端 | 適用 |
|---|---|---|
| PlayerPrefsSaver | UnityEngine.PlayerPrefs | 運行時 (遊戲內設定,隨應用程式/平台儲存) |
EditorPrefsSaver | UnityEditor.EditorPrefs | 僅編輯器 (編輯器工具偏好設定) |
(模組概觀詳見模塊介紹)
儲存範圍與寫入時機
注意 EditorPrefs 為使用者層級儲存,同一台機器上的所有 Unity 專案共用,建議鍵名加上專案或工具前綴 (例如 MyProject.MyTool.someKey) 避免衝突。
提醒 與 PlayerPrefsSaver 不同,EditorPrefs 由編輯器自動持久化,無需 (也沒有) Save() 呼叫。
覆寫成員
方法總覽
| 方法 | 說明 |
|---|---|
| SaveString | 儲存字串。 |
| GetString | 取得字串。 |
| SaveInt | 儲存整數。 |
| GetInt | 取得整數。 |
| SaveFloat | 儲存浮點數。 |
| GetFloat | 取得浮點數。 |
| HasKey | 檢查指定鍵是否存在。 |
| DeleteKey | 刪除指定鍵。 |
| DeleteAll | 刪除所有 EditorPrefs 鍵值。 |
SaveString
public override void SaveString(string key, string value)
透過 EditorPrefs.SetString 儲存字串。
editorSaver.SaveString("MyProject.MyTool.lastExportPath", "Assets/Exports");
GetString
public override string GetString(string key, string defaultValue = "")
透過 EditorPrefs.GetString 取得字串,鍵不存在時返回 defaultValue。
SaveInt
public override void SaveInt(string key, int value)
透過 EditorPrefs.SetInt 儲存整數。
GetInt
public override int GetInt(string key, int defaultValue = 0)
透過 EditorPrefs.GetInt 取得整數,鍵不存在時返回 defaultValue。
SaveFloat
public override void SaveFloat(string key, float value)
透過 EditorPrefs.SetFloat 儲存浮點數。
GetFloat
public override float GetFloat(string key, float defaultValue = 0f)
透 過 EditorPrefs.GetFloat 取得浮點數,鍵不存在時返回 defaultValue。
HasKey
public override bool HasKey(string key)
透過 EditorPrefs.HasKey 檢查指定鍵是否存在。
DeleteKey
public override void DeleteKey(string key)
透過 EditorPrefs.DeleteKey 刪除指定鍵。
DeleteAll
public override void DeleteAll()
透過 EditorPrefs.DeleteAll 刪除鍵值。
重要 EditorPrefs.DeleteAll 會刪除整台機器使用者層級的所有編輯器偏好設定 (包含 Unity 本身與其他工具的設定),一般情況強烈不建議使用。