• 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

  • 相关阅读:
    Outlook同步问题
    Excel下三角图解的绘制
    数据库,SQL,万恶之源?
    新年第一篇
    ArcGIS的GeoProcessing的原理及实现(1)
    如何在多个文件中查找需要的信息
    关于GIS门户(GIS Portal)的概念
    2004总结
    MapViewControl更新
    GCDPlot 0.22 介绍
  • 原文地址:https://www.cnblogs.com/TravelingLight/p/13025713.html
Copyright © 2020-2023  润新知