Unity C# 使用JsonUtility读写Json文件
本文原创,转载请注明出处:http://www.cnblogs.com/AdvancePikachu/p/7146731.html
今天,为大家分享一下unity上的Json序列化,应该一说到这个词语,我们肯定会觉得,这应该是很常用的一个功能点;诚然,我们保存数据的时候,也许会用到json序列化,所以,我们有必要快速了解一下它的简单用法。
1.首先,我们直接新建unity项目,然后新建一个InputData.cs 数据结构类;
代码如下:
1 [Serializable]
2 public class InputData
3 {
4 public InputDataEntry[] data;
5 }
6
7 [Serializable]
8 public class InputDataEntry
9 {
10 public string name;
11 public int age;
12 }
2.然后建一个AppManager.cs的组件类
         
AppManager.cs 代码如下:
 1 public class AppManager : MonoBehaviour {
 2
 3     InputData _inputDate = new InputData ();
 4
 5     InputData inputDate
 6     {
 7         get
 8         {
 9             return _inputDate;
10         }
11         set
12         {
13             _inputDate = value;
14         }
15     }
16
17     string path;
18     bool  truename;
19
20     void Start ()
21     {
22         path = Application.dataPath + "/Resources/inputdate.json";
23
24         if (LoadFromFile () != null)
25             inputDate = LoadFromFile ();
26     }
27
28     InputData LoadFromFile()
29     {
30         if (!File.Exists (path))
31             return null;
32
33         StreamReader sr = new StreamReader (path);
34
35         if (sr == null)
36             return null;
37
38         string json = sr.ReadToEnd ();
39
40         if (json.Length > 0)
41             return JsonUtility.FromJson<InputData> (json);
42
43         return null;
44     }
45
46
47     void OnApplicationQuit ()
48     {
49         string json = JsonUtility.ToJson (inputDate, true);
50         File.WriteAllText (path, json, Encoding.UTF8);
51     }
52
53     public void RangNumber()
54     {
55         InputDataEntry[] ide = new InputDataEntry[1];
56         ide [0] = new InputDataEntry ();
57         ide [0].age = Random.Range (18, 26);
58
59         if (truename)
60             truename = false;
61         else
62             truename = true;
63
64         ide [0].name = truename ? "AdvancePikachu" : "进击的皮卡丘";
65         inputDate.data = ide;
66
67         Debug.Log ("age :" + ide [0].age + "\n name :" + ide [0].name);
68     }
69 }
3.然后,我们可以直接运行编辑器看效果!

如下的json文件的内容:

大致的读取与写入功能已经写好,详细的内容与具体的实现就不罗嗦了!
Unity C# 使用JsonUtility读写Json文件的更多相关文章
- python 读写json文件(dump, load),以及对json格式的数据处理(dumps, loads)
		JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. 1.json.dumps()和json.loads()是json ... 
- 在Unity中使用LitJson解析json文件
		LitJson 这个库需要找资源,找到LitJson.dll后将它放在Assets文件夹下,在脚本中使用using引入即可 测试代码 json文件: {"Archice":[{&q ... 
- iOS 如何用JSONKit读写JSON文件
		如何用JSONKit读写JSON文件 分类: ios2013-04-20 12:46 510人阅读 评论(0) 收藏 举报 JSON文件格式简单,使用方便,值得一用. 目前已经有多个库支持Json文 ... 
- python 读写 json文件
		json的优势: 1. 数据体积方面. JSON相对于XML来讲,数据的体积小,传递的速度更快些. 2. 传输速度方面. JSON的速度要远远快于XML 3. 数据格式 数据格式比较简单, 易于读写, ... 
- java如何读写json文件
		在实际项目开发中,有时会遇到一些全局的配置缓存,最好的做法是配置redis数据库作为数据缓存,而当未有配置redis服务器时,读取静态资源文件(如xml.json等)也是一种实现方式,但是这有一个弊端 ... 
- Unity 用C#脚本读取JSON文件数据
		读取JSON文件数据网上有很多方法吗,这里采用SimpleJSON,关于SimpleJSON的介绍参考以下链接:http://wiki.unity3d.com/index.php/SimpleJSON ... 
- node读写json文件(进阶)
		该方法可用于修改配置文件,直接上代码 fs.readFile('test1.json','utf8',function (err, data) { if(err) console.log(err); ... 
- C++通过jsoncpp类库读写JSON文件-json用法详解
		介绍: JSON 是常用的数据的一种格式,各个语言或多或少都会用的JSON格式. JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择. ... 
- Python3读写JSON文件
		JSON简介 JSON(JavaScript Object Notation)即JavaScript对象表示法,一种轻量级,通用的文本数据格式. JSON语法支持对象(Object),数组(Array ... 
随机推荐
- day02.1-Linux虚拟操作系统的安装
			在windons环境中配置Linux虚拟操作系统,需要事先在Windons系统上下载并安装虚拟运行软件“VMware Workstations”,以下虚拟物理机的建立和虚拟Linux系统的配置都是在该 ... 
- ScriptableObject
			什么是ScriptableObject? 点击查看Unity官网的描述 直译过来就是“脚本化对象”,换言之这类作为存储结构化的数据来使用,并写入Unity的资源.asset文件去存储一组数据,取用的时 ... 
- 【转】 PHP 两个日期(时间段) 之间的日期数组
			在开发过程中会遇到这样一个需求:获取2018-11-02到2018-11-15之间的日期数组 希望得到如下数组: Array ( [] => -- [] => -- [] => -- ... 
- P3749 [六省联考2017]寿司餐厅 最小割
			\(\color{#0066ff}{ 题目描述 }\) Kiana 最近喜欢到一家非常美味的寿司餐厅用餐. 每天晚上,这家餐厅都会按顺序提供 \(n\) 种寿司,第 \(i\) 种寿司有一个代号 \( ... 
- linux模式切换,进程切换
			内核态和用户态的切换: 用户态到内核态的转换:1.进行系统调用,2.异步中断,3.外部硬件中断 检查特权级别的变化:当异常发生在用户态,而异常处理函数则必须运行在内核态,则此时必须调用内核态的堆栈(系 ... 
- Jenkins 相关
			手动下载Jenkins plugin 的地址, 下载后的是zip 文件,然后再手动修改为.hpi 文件,然后再手动上传 https://plugins.jenkins.io/ 
- Ubuntu安装SHH服务
			1.打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"--> ... 
- 7 . 动态sql-choose
			choose-when-otherwise 只能满足一个when 中的条件,互斥的条件,不能同时存在 mapper.xml <select id="selectstateByTitle ... 
- CSS趣味
			谈一下小技巧: 1.先看一下问题,实现下图,只用于一个html元素有多少种实现方式? 假设我们的单标签是一个 div: <div></div> 定义如下通用CSS: div{ ... 
- pre 标签 防止 其撑开 div...
			pre 里面 的内容如果不换行,会导致 div 横向 出现 滚动条...加入下列 css可解决! pre{ white-space: pre-wrap; word-wrap: break-word; ... 
