美文网首页
数据的持久化存储

数据的持久化存储

作者: OneMore2018 | 来源:发表于2017-10-27 19:48 被阅读25次

             说到数据的持久化存储,想必大家都会有各自的方法实现,小数据存储就用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,就这样~

    相关文章

      网友评论

          本文标题:数据的持久化存储

          本文链接:https://www.haomeiwen.com/subject/mqudpxtx.html