【轉】Unity 游戲存檔 PlayerPrefs類的用法


http://www.cnblogs.com/qiaogaojian/p/5969855.html

unity3d提供了一個用於本地持久化保存與讀取的類——PlayerPrefs。工作原理非常簡單,以鍵值對的形式將數據保存在文件中,然后程序可以根據這個名稱取出上次保存的數值。
    PlayerPrefs類支持3中數據類型的保存和讀取,浮點型,整形,和字符串型。
    分別對應的函數為:
    SetInt();保存整型數據;
    GetInt();讀取整形數據;
    SetFloat();保存浮點型數據;
    GetFlost();讀取浮點型數據;
    SetString();保存字符串型數據;
    GetString();讀取字符串型數據;
這些函數的用法基本一致使用Set進行保存,使用Get進行讀取。下面根據一個例子來詳細說明一下用法:
   首先打開unity3D,新建一個工程文件,然后在項目視圖里面新建一個c#文件,命名為_Playerprefs  
   並輸入一下代碼:
 

復制代碼
 1      public class _Playerprefs : MonoBehaviour {
 2          public string set_NAME;
 3          public string get_NAME;
 4          void OnGUI()
 5          {
 6                  GUILayout.BeginHorizontal("box");
 7                  GUILayout.Label("姓名:");
 8                  set_NAME=GUILayout.TextArea(set_NAME, 200,GUILayout.Width(50));
 9                  if(GUILayout.Button("存儲數據"))
10                  {
11 
12                         //將我們輸入的姓名保存到本地,命名為_NAME ;
13                         PlayerPrefs.SetString("_NAME", set_NAME);
14                  }
15                  GUILayout.EndHorizontal();
16                  GUILayout.BeginHorizontal("box");
17                  if(GUILayout.Button("讀取數據"))
18                  {
19 
20                          //讀取本地數據中名稱為_NAME 的數據;
21                         get_NAME=PlayerPrefs.GetString("_NAME");
22                  }
23                  GUILayout.Label("你輸入的姓名:"+get_NAME);
24                  GUILayout.EndHorizontal();
25                  
26 
27          }
28  }
復制代碼


分析一下這段代碼,我們在輸入框中輸入一個名稱,然后點擊存儲數據按鈕,將數據存儲到本地並且命名為_NAME ,然后點擊讀取數據按鈕,從本地數據中找到名稱為_NAME  的數據,並存放到我們定義好的變量get_NAME 中,然后用Label顯示出來
運行結果如下:

 PlayerPrefs.SetString("_NAME", set_NAME); 這個方法中第一個參數表示存儲數據的名稱,第二的參數表示具體存儲的數值。 get_NAME=PlayerPrefs.GetString("_NAME"); 這個方法中第一個數據表示讀取數據的名稱,本來還有第二的參數,表示默認值,如果通過數據名稱沒有找到對應的值,那么就返回默認值,這個值也可以寫,則返回空值。 下面我們將這個簡單的工程發布成EXE格式,打開我們發布好的EXE文件,在輸入框里面輸入張三。 如圖:

QQ截圖20140116160855.png

點擊存儲數據按鈕,將數據存儲到本地,然后關閉exe文件, 然后再打開,打開后點擊讀取數據:得到的結果如圖:

數據被我們從本地文件中讀取出來了,完成了一次簡單的存檔操作。 在PlayerPrefs 類中還提供了PlayerPrefs.DeleteKey(key : string)刪除指定數據;PlayerPrefs.DeleteAll() 刪除全部鍵 ;PlayerPrefs.HasKey (key : string)判斷數據是否存在的方法;


免責聲明!

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



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