跳至主要内容

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", "");

通用規則​

適用範圍​

儲存器儲存後端適用
PlayerPrefsSaverUnityEngine.PlayerPrefs運行時 (遊戲內設定,隨應用程式/平台儲存)
EditorPrefsSaverUnityEditor.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 本身與其他工具的設定),一般情況強烈不建議使用。