概念
PlayerPrefs 遊戲存檔俗稱玩家偏好。 工作原理非常簡單,以鍵值對的形式将資料儲存在檔案中,然後程式可以根據這個名稱取出上次儲存的數值。類似于ios中的預設偏好設定(NSUserDefaults)用法類似
-
Windows
在Windows平台下,PlayerPrefs被存儲在系統資料庫的 HKEY_CURRENT_USER\Softwarecompany name鍵下(打開“運作”輸入regedit打開系統資料庫),其中company name和product name名是在Project Setting中設定。
-
Linux
在Linux,PlayerPrefs是儲存在~/.config/unity3d/[CompanyName]/[ProductName]。其中CompanyName和ProductName名是在Project Setting中設定
-
WebPlayer 網頁
在網頁平台,PlayerPrefs是儲存在二進制檔案,看下面的對應的各平台位置:
Mac OS X: ~/Library/Preferences/Unity/WebPlayerPrefs
Windows: %APPDATA%\Unity\WebPlayerPrefs
一個遊戲存檔檔案對應一個web播放器URL并且檔案大小被限制為1MB。如果超出這個限制,SetInt、SetFloat和SetString将不會存儲值并抛出一個PlayerPrefsException異常。
存檔類型可以有float,int,string 三種類型,每種類型分别對應着Set,Get兩種方法,下面以float類型進行舉例,int,string同理。
代碼示例
SetInt(key:string, Value:int) 傳回值 void
設定由key确定的偏好值。
參數:
- 第一個參數表示存儲資料的名稱
- 第二的參數表示具體存儲的數值。
public class playerDemo: MonoBehaviour
{
public void Start()
{
PlayerPrefs.SetInt("Score", 10);
}
}
GetInt(key:string,defaultValue:int=0) 傳回值 int 。如果存在,傳回偏好檔案中key對應的值。
public class playerDemo: MonoBehaviour
{
public void Start()
{
Debug.log(PlayerPrefs.GetInt("Score"));
}
}
相關方法
PlayerPrefs 還有以下幾個方法:
- 是否包含輸入鍵:
public static bool HasKey(string key);
如果key在偏好中存在,傳回true,否則傳回false。
- 删除指定鍵:
public static void DeleteKey(string key);
從存儲偏好中删除key和它對應的值。
- 删除所有鍵:
public static void DeleteAll();
從遊戲存檔中删除所有key。請謹慎使用。
- 儲存:
public static void Save();
做了某些操作的之後進行儲存操作