Unity游戲存檔


在Unity中游戲存檔有如下四種方式:PlayerPrefs,C#序列化,Xml序列化,Json序列化

一般要解決幾個問題

1.游戲版本的升級 

2.玩家有多個存檔 

3.玩家破壞存檔的情況

PlayerPrefs

優點:上手簡單,存儲方便,不用考慮內部實現,適合做小游戲的數據存檔。

缺點:只支持基本數據類型,無法存儲一個類,數組,集合,字典等。

C#序列化

優點:

1.除了靜態類型和抽象類型以及類必須標記為[Serializable]的,其他的都可以被序列化:類,數組,集合,字典,類及其子類等。

缺點:
1.不會調用要序列化類的構造函數。
2.在升級版本后,新增一個字段也只是采用系統默認值,而不是我在類中直接賦的值。
3.在升級版本后,如果刪除了之前的一個字段,則無法正確解析(反序列化)。

Xml序列化

優點:

1.序列化出來的數據直觀,可以序列化類和類中的對象。

2.升級版本后,如果新增了字段,則自動采用你在類中賦給該變量的值。

3.升級版本后,如果刪除了之前的字段,則自動忽略之前的字段,而不會像c#序列化一樣報錯。

缺點:

1.不能序列化字典,二維數組以上的數據。

2.比Json更占空間,且引入的dll也更大。

Json序列化

優點:

1.簡單輕量

2.可以滿足你要序列化的幾乎任何類型數據。

3.如果要升級版本,可以任意刪除之前的字段而不會出現不能解析的情況;可以新增字段且采用你在類中直接賦的值。

缺點:

1.相對PlayerPrefs來說,引入了一個250kb左右的DLL文件。

Newtonsoft.Json :https://github.com/SaladLab/Json.Net.Unity3D

 

引用:https://blog.csdn.net/a237653639/article/details/50076755


免責聲明!

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



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