PlayerPrefsSaver
Coding Style wiki
PlayerPrefsSaver 是 SaverSystem 內建的運行時儲存器 (繼承 Saver),以 UnityEngine.PlayerPrefs 作為儲存後端,每次 Save* 皆會自動呼叫 PlayerPrefs.Save() 立即寫入;並可直接使用基類提供的文本數據功能 (Data Map)。
| 命名空間 | OxGKit.SaverSystem |
| 類型 | public class PlayerPrefsSaver : Saver |
| 原始碼 | PlayerPrefsSaver.cs |
using OxGKit.SaverSystem;
快速上手
using OxGKit.SaverSystem;
// 建立運行時儲存器 (PlayerPrefs 後端)
Saver saver = new PlayerPrefsSaver();
// 基本存取
saver.SaveString("name", "michael");
saver.SaveInt("language", 2);
saver.SaveFloat("bgmVolume", 0.8f);
// 文本數據功能 (由 Saver 基類提供)
saver.SaveData("appPrefs", "lastLogin", "2026-07-29");
string lastLogin = saver.GetData("appPrefs", "lastLogin", null);
通用規則
適用範圍
| 儲存器 | 儲存後端 | 適用 |
|---|---|---|
PlayerPrefsSaver | UnityEngine.PlayerPrefs | 運行時 (遊戲內設定,隨應用程式/平台儲存) |
| EditorPrefsSaver | UnityEditor.EditorPrefs | 僅編輯器 (編輯器工具偏好設定) |
(模組概觀詳見模塊介紹)
寫入時機
注意 每次 Save* 皆會自動呼叫 PlayerPrefs.Save() 立即寫入磁碟;DeleteKey / DeleteAll 則不會額外呼叫 Save() (依 Unity 預設於應用程式正常退出時寫入,必要時可自行呼叫 PlayerPrefs.Save())。
提醒 PlayerPrefs 儲存位置依平台而異 (例如 Windows 為註冊表、WebGL 為瀏覽器 IndexedDB);WebGL 的持久化依賴瀏覽器落盤,並避免儲存過大的字串。
覆寫成員
方法總覽
| 方法 | 說明 |
|---|---|
| SaveString | 儲存字串並立即寫入。 |
| GetString | 取得字串。 |
| SaveInt | 儲存整數並立即寫入。 |
| GetInt | 取得整數。 |
| SaveFloat | 儲存浮點數並立即寫入。 |
| GetFloat | 取得浮點數。 |
| HasKey | 檢查指定鍵是否存在。 |
| DeleteKey | 刪除指定鍵。 |
| DeleteAll | 刪除所有 PlayerPrefs 鍵值。 |
SaveString
public override void SaveString(string key, string value)
透過 PlayerPrefs.SetString 儲存字串,並立即呼叫 PlayerPrefs.Save() 寫入。
saver.SaveString("name", "michael");
GetString
public override string GetString(string key, string defaultValue = "")
透過 PlayerPrefs.GetString 取得字串,鍵不存在時返回 defaultValue。
SaveInt
public override void SaveInt(string key, int value)
透過 PlayerPrefs.SetInt 儲存整數,並立即呼叫 PlayerPrefs.Save() 寫入。
GetInt
public override int GetInt(string key, int defaultValue = 0)
透過 PlayerPrefs.GetInt 取得整數,鍵 不存在時返回 defaultValue。
SaveFloat
public override void SaveFloat(string key, float value)
透過 PlayerPrefs.SetFloat 儲存浮點數,並立即呼叫 PlayerPrefs.Save() 寫入。
GetFloat
public override float GetFloat(string key, float defaultValue = 0f)
透過 PlayerPrefs.GetFloat 取得浮點數,鍵不存在時返回 defaultValue。
HasKey
public override bool HasKey(string key)
透過 PlayerPrefs.HasKey 檢查指定鍵是否存在。
DeleteKey
public override void DeleteKey(string key)
透過 PlayerPrefs.DeleteKey 刪除指定鍵。
DeleteAll
public override void DeleteAll()
透過 PlayerPrefs.DeleteAll 刪除鍵值。
重要 PlayerPrefs.DeleteAll 會刪除此應用程式的所有 PlayerPrefs 鍵值 (包含非經由本儲存器儲存的鍵),請謹慎使用。