Unity中数据的存储与交互的初步分析(PlayerPrefs,Dictionary,JsonUnility)

1.PlayerPrefs


  PlayerPrefs.SetString(key,Value);  PlayerPrefs.GetString(key,Value);字符串类型

  PlayerPrefs.SetFloat(key,Value);  PlayerPrefs.GetFloat(key,Value);浮点类型

  PlayerPrefs.SetInt(key,Value);  PlayerPrefs.GetInt(key,Value);数值类型

  PlayerPrefs.DeleteKey();PlayerPrefs.DeleteAll();删除

 PlayerPrefs.HasKey();返回一个布尔值,是否有该Key值

2.Dictionary

Dictionary<string,string>,一般的,在编辑代码的时候,仅仅打出Dictionary是无法使用using的。这是就需要把<Tkey,Tvalue>,尖括号打上,键值对填写

Dictionary<Tkey,Tvalue>从Dictionary的声明的参数中就可以看出,Dictionary的键值对的类型几乎可以是任何类型,可以是List 可以是Class可以使常见的 int float string 。

3.JsonUnility 常用的几个方法


JsonUnility.ToJson();

JsonUnility.FromJson();

JsonUnility.FromJsonOverWrite();

Json的特别之处就是可以实时的与文件进行交互存取,但是若是使用Json中的定义的键值对,则需

a.引用using System;

b.在一个普通类中或者容器中 定义变量即JsonUnility的Key值

c.在这个普通类定义的前面加上[seriesable]

 

 

 

三者的共同点:


 三者都是以键值对的形式进行存储,都可以为游戏或者软件的运行将数据进行缓存

 

三者的不同点:

PlayerPrefs可以将数据存在本地的注册表内,存储方便,但是不能与网络进行交互,适合本地存储的单机类游戏。

JsonUnility是以Json语言进行交互,它利用Json语言贴近计算机编码语言,易存取,易交互的特点,能与网络进行交互。但是相对于PlayerPrefs来说,相对比较麻烦。

Dictionary是可以读取Text文件的内容,讲Text中的文件进行简单处理,就可以存储成为键值对,相对于JsonUnility来说,它没有那种,及时更新数据,不能被转换成方法或者吧类中的属性的特点:

JsonUnility

posted on 2017-03-13 21:36  ThisIsRone  阅读(583)  评论(0编辑  收藏  举报

导航