跳至主要内容

EditorPrefsSaver

重要 注意 提醒

Coding Style wiki


EditorPrefsSaverSaverSystem 內建的編輯器儲存器 (繼承 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 本身與其他工具的設定),一般情況強烈不建議使用