【Unity3D】Unity3D之 注冊表動態存取游戲存檔——PlayerPrefs類


【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,這是因為我們並沒有存儲數據,只有存儲數據之后才能出現!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM