Unity JsonFx 插件使用
在Unity中使用 JsonFx 插件笔记(提示:以下在 Unity3D v5.4.0 版本 Win 平台下测试成功)
- 下载 JsonFx 插件
注意:JsonFx 插件其实就是一个 dll 文件(如果是其他平台,就是对应的库文件。如:android 平台下就对就应为 JsonFx.a) - 将下载好的 JsonFx 插件放置于项目 Assets/Plugins 目录下
- 在具体要使用的地方添加如下using
using Pathfinding.Serialization.JsonFx;
- 此后就可以正常使用 JsonFx 插件,参考示例如下:
public class Person
{
public string name;
public int age; public Person(): this("", ) { } public Person(string _name, int _age) {
name = _name;
age = _age;
} }//public class Person #endregion public class C_9_9 : MonoBehaviour
{ // Use this for initialization
void Start () { Person john = new Person("John", );
// 将对象序列化成Json字符串
string Json_Text = JsonWriter.Serialize(john);
Debug.Log(Json_Text);
// 将字符串反序列化成对象
// john = JsonReader.Deserialize(Json_Text) as Person; // 提示,使用这种方式没办法正确反序列化成功 john 对象
john = JsonReader.Deserialize<Person>(Json_Text); // 提示,使用这种方式要求 Person 类必需要有一个默认构造函数
Debug.Log("john.name = " + john.name);
Debug.Log("john.age = " + john.age); } } - 至此,序列化与反序列化均已完成。当然这边还可以结合 System.IO 相关操作进行本地存档等相关处理。
参考代码如下:using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using Pathfinding.Serialization.JsonFx;
using System.IO; public class Person
{
public string name;
public int age; public Person(): this("", ) { } public Person(string _name, int _age) {
name = _name;
age = _age;
} }//public class Person public class C_9_9 : MonoBehaviour
{ // Use this for initialization
void Start () { Person john = new Person("John", );
// 将对象序列化成Json字符串
string Json_Text = JsonWriter.Serialize(john);
Debug.Log(Json_Text);
// 将字符串反序列化成对象
// john = JsonReader.Deserialize(Json_Text) as Person; // 提示,使用这种方式没办法正确反序列化成功 john 对象
john = JsonReader.Deserialize<Person>(Json_Text); // 提示,使用这种方式要求 Person 类必需要有一个默认构造函数
Debug.Log("john.name = " + john.name);
Debug.Log("john.age = " + john.age); // 这边将刚才序列化后的字符串保存起来
string dataPath = GetDataPath() + "/jsonfx_test/person_john.txt";
File.WriteAllText(dataPath, Json_Text); } // 取得可读写路径
public static string GetDataPath() {
if (RuntimePlatform.IPhonePlayer == Application.platform) {
// iPhone 路径
string path = Application.dataPath.Substring(, Application.dataPath.Length - );
path = path.Substring(, path.LastIndexOf('/'));
return path + "/Documents";
} else if (RuntimePlatform.Android == Application.platform) {
// 安卓路径
//return Application.persistentDataPath + "/";
return Application.persistentDataPath;
} else {
// 其他路径
return Application.dataPath;
}
} }JsonFx 使用完整参考示例
Unity JsonFx 插件使用的更多相关文章
- 开发unity DLL插件
最近开发一款设备的SDK,想着要开发unity版本,怎么做呢?首先想到的就是在外部编写相关的驱动程序然后集成成几个dll作为unity的SDK使用了.So,我就开始了unity外部插件的研究之旅了. ...
- (转)Unity Cinemachine插件,实现单目标和多目标之间切换
Unity Cinemachine插件学习笔记,实现单目标和多目标之间切换*版本要求Unity2017.1及以上. 参考资料: [官方] Unity 2017.1正式版发布 Cinemachine插件 ...
- Unity使用JsonFX插件进行序列化
孙广东 2015.6.25 Unity and JSON – Quick Guide: 相比較XML的沉重和密集,Json更加高效. Introduction: 什么是 Json ?假设你从未使用过 ...
- 开源Unity小插件CheatConsole
我们在开发游戏的过程中,通常都需要一些快捷的方式来进行一些非常规的测试,这些功能一般被称作控制台或者GM指令,比如虚幻竞技场中,可以使用~键呼出控制台,输入一些指令即可进行快捷设置,比如设置分辨率,全 ...
- 编写 Unity Editor 插件
Editor Style Viewer 在开发过程中,我喜欢编写一些辅助的Editor插件,方便在游戏开发过程进行调试. 下面是摘自Asset Store的一个查看Unity 默认GUI样式的小工具 ...
- 【转】unity地形插件T4M使用帮助
unity的地形系统在手机游戏中因为效率问题基本无法使用,只能通过T4M这个地形插件来进行优化制作.下面大概讲解一下使用流程及方法. 先中U3D里面用自带的地形系统刷出想要的地形和贴图.贴图可以大概刷 ...
- unity Dotween插件的简单介绍及示例代码
unity里面做插值动画的插件有许多,比较常见的有itween.hotween.dotween.根据大家的反馈和实际体验来说,dotween插件在灵活性.稳定性.易用性上都十分突出.这里简单介绍下它的 ...
- Unity给力插件之ShaderForge(一)
这是一个用来制作shader的插件,也是一个很好的学习shader的工具.这个插件上手很容易,但是要用它来制作理想的Shader,需要下点功夫. 这儿先列举出基础知识,以及我的一些实践.以后我还会继续 ...
- Unity给力插件之MeshBaker
这是一个用来合并网格.材质.贴图的插件. 其实网上也有一些比较详细的使用说明,但是真实操作起来时,总是有一些搞不清bug.而且,作为功能比较全的插件,在Unity版本更新时,也难免会一些不兼容的地方. ...
随机推荐
- Verilog笔记.6.FIFO
FIFO,First In First Out ,是一种先进先出的数据缓存器. 没有外部读写地址线,只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成. 不能像普通存储器那样可以 ...
- [转载]Android中Bitmap和Drawable
一.相关概念 1.Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable) ...
- Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式
史诗级Java/JavaWeb学习资源免费分享 欢迎关注我的微信公众号:"Java面试通关手册"(坚持原创,分享各种Java学习资源,面试题,优质文章,以及企业级Java实战项目回 ...
- LCD之mipi DSI接口驱动调试流程【转】
转自:http://blog.csdn.net/liwei16611/article/details/68146912 1.LCD MIPI DSI协议 MIPI-DSI是一种应用于显示技术的串行接口 ...
- linux用户修改用户shell
要拒绝系统用户登录,可以将其shell设置为/usr/sbin/nologin或者/bin/false # usermod -s /usr/sbin/nologin username 或者 # use ...
- Linux运维常用的几个命令介绍【转】
Linux运维常用的几个命令介绍 1. 查看系统内核版本 [root@funsion geekxa]# cat /etc/issue CentOS release 6.5 (Final) Kerne ...
- linux动态库编译和使用详细剖析 - 后续
引言 - 也许是修行 很久以前写过关于动态库科普文章, 废话反正是说了好多. 核心就是在 linux 上面玩了一下 dlopen : ) linux动态库编译和使用详细剖析 - https://www ...
- JavaScript 跳转 页面
* window.location.href , self.location, window.location 出现问题不能跳转 Chome 不能本页跳转, IE 有时可以
- Netty并发优化之ExecutionHandler
上文<Netty框架入门>说到:如果业务处理handler耗时长,将严重影响可支持的并发数. 针对这一问题,经过学习,发现了可以使用ExecutionHandler来优化. 先来回顾一下没 ...
- QWT编译、配置、使用(Qt Creator)
环境: Win7 32 bit / Qt Creator 3.3.1 / Qt 5.4.1 (msvc2013_opengl, 32 bit) / QWT 6.1.2 QWT, Qt Widgets ...