Unity 數據存儲


Unity中的數據存儲

  數據的本地持久化保存方式:

  A. PlayerPrefs:Unity 特有的存儲方式,用於游戲簡單的基本數據存儲。

  B. XML:跨平台公認標准,兼容性好。

  C. JSON:輕量級數據模式,跟 XML 一樣具有跨平台特性,同時語法更加簡潔。

  D. 數據庫:主流的數據庫都支持,例如 MySQLSQLiteOracle 等。

  接下來我們主要說是第一種數據存儲方式:PlayerPrefs ,主要用於簡單的單機應用。

PlayerPrefs

  在 Unity 里面,提供了一個用於本地持久化保存與讀取的類 —— PlayerPrefs

  工作原理非常簡單,以鍵值對的形式將數據保存在本地文件中,然后程序可以根據這個名稱取出上次保存的數值。

  PlayerPrefs 類支持三種數據類型的保存和讀取:浮點型、整型和字符串型。

  分別對應的函數為:

  SetInt():保存整型數據;

  GetInt():讀取整形數據;

  SetFloat():保存浮點型數據;

  GetFlost():讀取浮點型數據;

  SetString():保存字符串型數據;

  GetString():讀取字符串型數據;

  這些函數的用法基本一致使用 Set 進行保存,使用 Get 進行讀取。在 PlayerPrefs 類中還提供了

  PlayerPrefs.DeleteKey (key : string):刪除指定數據;

  PlayerPrefs.DeleteAll():刪除全部鍵 ;

  PlayerPrefs.HasKey (key : string):判斷數據是否存在;

舉個例子

  創建測試腳本,掛載到 Mian Camera(主相機)上:

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

  運行結果:

PlayerPrefs 數據存儲在哪里

  * 在 Mac OS X 平台下,存儲在 ~/Library/Preferences 文件夾,名為 unity.[company name].[product name].plist

  * 在 Windows 平台下,存儲在注冊表的 HKEY_CURRENT_USER\Software[company name][product name] 鍵下。

注意事項

  * 數據以鍵值對的形式存儲,可以看做一個字典。

  * 數據通過鍵名來讀取,當值不存在時,返回默認值。


免責聲明!

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



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