【Unity3D】Unity3D之 注冊表動態存取游戲存檔——PlayerPrefs類
1.Unity3D提供了一個用於本地持久化保存與讀取的類——PlayerPrefs。工作原理非常簡單,以鍵值對的形式將數據保存在文件中,然后程序可以根據這個名稱取出上次保存的數值。
2.PlayerPrefs類支持3中數據類型的保存和讀取,浮點型,整形,和字符串型。
分別對應的函數為:
SetInt();保存整型數據;
GetInt();讀取整形數據;
SetFloat();保存浮點型數據;
GetFlost();讀取浮點型數據;
SetString();保存字符串型數據;
GetString();讀取字符串型數據;
//保存數據 PlayerPrefs.SetString("Name",mName); PlayerPrefs.SetInt("Age",mAge); PlayerPrefs.SetFloat("Grade",mGrade) //讀取數據 mName=PlayerPrefs.GetString("Name","DefaultValue"); mAge=PlayerPrefs.GetInt("Age",0); mGrade=PlayerPrefs.GetFloat("Grade",0F);
3.通過上面兩段代碼,我們可以發現兩點:
1)、Unity3D中的數據持久化是以鍵值的形式存儲的,可以看作是一個字典。
2)、Unity3D中值是通過鍵名來讀取的,當值不存在時,返回默認值。
目前,在Unity3D中只支持int、string、float三種數據類型的讀取,所以我們可以使用這三種數據類型來存儲簡單的數據。目前Unity3D中用於數據持久化的類為layerPrefs,主要的類方法有:
static function DeleteAll(): void 描述:從設置文件中移除所有鍵和值,謹慎的使用它們。 static function DeleteKey(key: string): void 描述:從設置文件中移除key和它對應的值。 static function GetFloat(key: string, defaultValue: float=OF): float 描述:如果存在,返回設置文件中key對應的值.如果不存在,它將返回defaultValue。 static function GetInt(key: string, defaultValue: int): int 描述:返回設置文件中key對應的值,如果存在.如果不存在,它將返回defaultValue。 static function GetString(key: string, defaultValue: string=**): string 描述:返回設置文件中key對應的值,如果存在.如果不存在,它將返回defaultValue. static function HasKey(key: string): bool 描述:在設置文件如果存在key則返回真. static function SetFloat(key: string, value: float): void 描述:設置由key確定的值. static function SetInt(key: string, value: int): void 描述:設置由key確定的值. static function SetString(key: string, value: string): void 描述:設置由key確定的值.
4.這些函數的用法基本一致使用Set進行保存,使用Get進行讀取.
5.首先我們點擊Unity3D中的File ->Build Settings 選擇我們的PC端,點擊下面的Player Settings,我們在右側會出現一個【Inspector】面板,我們在開頭會看到如圖:
我們將Company Name和Product Name更改成我們喜歡的名字.
5.然后,我們【Win + R】輸入我們輸入框中的單詞,回車,這里我們打開了注冊表,找到【HKEY_CURRENT_USER】,找到【HKEY_CURRENT_USER\SOFTWARE】,我們在SOFTWARE里面,並沒有找到我們剛才定義的LDSCode,這是因為我們並沒有存儲數據,只有存儲數據之后才能出現!