数据的持久化存储

         说到数据的持久化存储,想必大家都会有各自的方法实现,小数据存储就用Unity里自带的PlayerPrefs这个类,多一点的数据则可以使用xml或者是json,今天就来说说这两种方法。

1. PlayerPrefs

这个应该很简单,和字典一样,需要设置key 和 value, 不过这里的value只有三种类型:int,float 和 string。存储和获取的API分别是PlayerPrefs.Set.. 和 PlayerPrefs.Get..  ; 很 简单,我就不多说了。

不过这里我得说一下之前遇到的一个坑(其实也不算,是我自己当时太懵逼,没反应过来,不想看的客官可以略过哈):我之前有个工程里用到了中英文UI切换,所以在单例类里声明了一个公共变量curLanguage ,并且直接赋值,比如:curLanguage="english",然后在点击切换语言的时候PlayerPrefs.Set并且PlayerPrefs.Get后,赋值给curLanguage,下次启动程序的时候,通过单例访问到当前的curLanguage,但是在第一次获取的时候curLanguage的值为空,所以PlayerPrefs.Get也为空,后来一查原因是当其他脚本使用该变量的时候,该变量因为没有在使用它的脚本之前去声明(写入内存),所以该值将为空。 解决办法是:1、将该变量的值在Awake里赋值  2、在创建的时候直接赋值,然后把该脚本的顺序放在第一位。。。

那么我们开始讲第二种方法xml

2.xml

xml其实也挺简单的,两个方法存储和获取数据,如下:


存储数据


获取数据

然后建个GameData类,里面的字段就是你想要存储的数据:

如下,我想要保存玩家的积分

public class GameData

{

public int playerIntegration;

public int computerOneIntegration;

public int computerTwoIntegration;

}

ok,就这样~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,740评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,845评论 18 139
  • IOS中数据的持久化保存这块内容,类似于Android中文件的几种常见的存储方式。对于数据的持久化存储,ios中一...
    蛐蛐_阅读 807评论 1 1
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,341评论 11 349
  • 猫头鹰是呆萌界的新宠,不少产品都喜欢以猫头鹰为元素来做图标。今天,我们就教大家如何用PS制作一个这样一枚图标。 造...
    蓝湖产品设计协作阅读 1,780评论 2 17