Unity游戲之存儲數(shù)據(jù)
在許多游戲中當(dāng)我們因為一些問題無法接著進(jìn)行游玩,我們都會選擇保存,以便后面有空時,接著游玩。接下來,我們會學(xué)習(xí)一些Unity有關(guān)的存儲方法。
一、Unity-PlayerPrefs(數(shù)據(jù)持久化)
這是Unity自帶的用于本地持久化保存與讀取的類,采用的是鍵值對的方式來進(jìn)行存儲,一般通過鍵名來進(jìn)行獲取。PlayerPrefs有Int,float,string類型。
保存數(shù)據(jù)
PlayerPrefs.SetString(“Color”, color);
PlayerPrefs.SetInt(“Number”, number);
PlayerPrefs.SetFloat(“Class”, class);
讀取數(shù)據(jù)
color = PlayerPrefs.GetString(“Color”, “red”);
number = PlayerPrefs.GetInt(“Number”, 20);
class = PlayerPrefs.GetFloat(“Class”, 1);
其他一些方法
PlayerPrefs.HasKey();//是否包含該鍵值對
PlayerPrefs.DeleteAll();//刪除所有鍵值對
PlayerPrefs.DeleteKey();//刪除某一個鍵值對
二、Unity-Serialization(序列化)和Deserialization(反序列化)
在Unity中我們也可以通過使用序列化來實現(xiàn)存儲,我們將要存儲的對象用序列化轉(zhuǎn)化為字節(jié)流來進(jìn)行存儲,當(dāng)我們需要用時我們通過反序列化將字節(jié)流轉(zhuǎn)化為對象來進(jìn)行讀取。
常見的序列化方法:二進(jìn)制,XML,Json.
這三種方法各有千秋,以下是對這三種方法對比
二進(jìn)制方法:簡單,但可讀性差
XML方法:可讀性強(qiáng),但是文件龐大,冗余信息多
JSON方法:數(shù)據(jù)格式比較簡單,易于讀寫,但是不直觀,可讀性比XML差
接下來我會講解一些關(guān)于二進(jìn)制的方法,關(guān)于XML以及Json方法我會放在下次來講。
三、二進(jìn)制序列方法
二進(jìn)制方法(Binary Formatter)
序列化:新建或打開一個二進(jìn)制文件,通過二進(jìn)制格式器將對象寫入該二進(jìn)制文件。
反序列化:打開待反序列化的二進(jìn)制文件,通過二進(jìn)制格式器將文件解析成對象。
在進(jìn)行存儲之前我們要定義一個類用來存儲我們需要保存的東西,接下來我會使用SiKi學(xué)院的案例來進(jìn)行講解。(詳情觀看http://www.sikiedu.com/my/course/129)
定義一個Save類,不需要繼承MonoBehaviour
該方法用于存儲射擊次數(shù)以及得分和所生成的Monster的所在位置以及其種類。
在進(jìn)行游戲的存儲時我們在GameManager中來實現(xiàn)二進(jìn)制序列化方法。
因為我們通過將游戲物體轉(zhuǎn)化為流來進(jìn)行存儲以及通過二進(jìn)制序列化來進(jìn)行存儲,所以我們要引入兩個命名空間。
因為我們保存當(dāng)前的游戲?qū)ο笏晕覀兌x一個方法來進(jìn)行創(chuàng)建Save對象并存儲當(dāng)前游戲狀態(tài)信息。
接下來使用二進(jìn)制來進(jìn)行對游戲的保存
if (File.Exists(Application.dataPath + “/StreamingFile” + “/byBin.txt”)){UIManager._instance.ShowMessage(“保存成功”);}是安全校驗,當(dāng)文件夾存在該路徑會提示保存成功。
讀取二進(jìn)制
在我們讀取保存游戲時我們要將存儲的數(shù)據(jù)進(jìn)行讀取所以在LoadByBin()方法中實現(xiàn)。
以上就是Unity游戲之存儲數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于Unity存儲數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C# 串口接收數(shù)據(jù)中serialPort.close()死鎖的實例
下面小編就為大家分享一篇C# 串口接收數(shù)據(jù)中serialPort.close()死鎖的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11C# DataTable中Compute方法用法集錦(數(shù)值/字符串/運算符/表等操作)
這篇文章主要介紹了C# DataTable中Compute方法用法,總結(jié)分析了DataTable中Compute方法常見的數(shù)值運算操作、字符串操作、運算符操作、表運算等相關(guān)技巧,需要的朋友可以參考下2016-06-06