跳至主要内容

PlayerPrefsSaver

重要 注意 提醒

Coding Style wiki


PlayerPrefsSaverSaverSystem 內建的運行時儲存器 (繼承 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);

通用規則

適用範圍

儲存器儲存後端適用
PlayerPrefsSaverUnityEngine.PlayerPrefs運行時 (遊戲內設定,隨應用程式/平台儲存)
EditorPrefsSaverUnityEditor.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 鍵值 (包含非經由本儲存器儲存的鍵),請謹慎使用。