天天看點

Unity 基礎 之 PlayerPrefs資料存儲概念代碼示例相關方法

概念

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();

做了某些操作的之後進行儲存操作

繼續閱讀