Unity 数据 序列化和反序列化 通用方法

原创 2017年07月04日 16:17:45

将下面的脚本挂到任意物体

using UnityEngine;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Serialization;
 
public class SerializeTest : MonoBehaviour
{
    void Start()
    {
        List<Information> serList = new List<Information>();
        string path = @"Test.xml";
 
        //赋值
        for (int i = 0; i < 5; i++)
        {
            serList.Add(new Information("名字" + i, 20 + i));
        }
 
        XMLSerialize(serList, path);
        List<Information> serTest = XMLDeserialize<List<Information>>(path);
 
        //输出返回的值
        foreach (var temp in serTest)
        {
            Debug.Log(temp.name);
            Debug.Log(temp.age);
        }
    }
 
    //序列化
    void XMLSerialize<T>(T obj, string path)
    {
        XmlSerializer xs = new XmlSerializer(typeof (T));
        Stream fs = new FileStream(path, FileMode.Create, FileAccess.ReadWrite);
        xs.Serialize(fs, obj);
        fs.Flush();
        fs.Close();
        fs.Dispose();
    }
 
    //反序列化
    T XMLDeserialize<T>(string path)
    {
        XmlSerializer xs = new XmlSerializer(typeof (T));
        Stream fs = new FileStream(path, FileMode.Open, FileAccess.ReadWrite);
        T serTest = (T)xs.Deserialize(fs);
        fs.Flush();
        fs.Close();
        fs.Dispose();
        return serTest;
    }
}
 
[XmlType("人员信息")]
public class Information
{
    [XmlAttribute("名字")]
    public string name;
 
    [XmlAttribute("年龄")]
    public int age;
    public Information(string name, int age)
    {
        this.name = name;
        this.age = age;
    }
 
    //必须要有
    public Information(){ }
}


Unity 中使用C#的序列化和反序列化处理游戏数据

这段时间在研究和学习C#的序列化和反序列化的东西。发现这是一个非常友好的数据本地store的方式。但是在使用过程中也有很多有意思的地方,我这里把我越到的问题列一下。我使用的是C#的二进制形式的序列化和...
  • liangZG_2011
  • liangZG_2011
  • 2013年09月04日 15:06
  • 2770

Unity中JSON序列化与反序列化

一.JSON介绍         JSON是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的...
  • zhang_liujie
  • zhang_liujie
  • 2017年09月03日 16:22
  • 383

Unity XML的序列化和反序列化

开始学习了,要不断的积累才能产生质变,加油吧!!! 今天学习一下XML的读取和写入,XML作为常用的数据存储,了解并掌握是必须的。using UnityEngine; using System.C...
  • liujunjie612
  • liujunjie612
  • 2017年01月06日 10:59
  • 1091

Unity的数据序列化与反序列化用于网络传输

Unity客户端与服务器通信,通过传输byte数组实现。这里使用BitConverter进行数据的序列化与反序列化把int,float,string各种变量封装成一个byte进行通信。Packet类如...
  • luoyikun
  • luoyikun
  • 2016年04月27日 02:12
  • 1304

Unity3D Json序列化与反序列化存储到ScriptableObject

不懂ScriptableObject创建的请看之前文章ScriptableObject的创建。拿到策划给我们这样一个Excel表格,我们需要先通过Json在线编辑器将它转换为Json,看图: 将Ex...
  • Jason_520
  • Jason_520
  • 2017年01月21日 09:51
  • 2075

unity xml反序列化为数据类

xml在unity中,经常用来保存本地数据,我们在处理xml文件的时候,通常是先创建一个xml对应的数据类,然后将xml解析的每一个element封装成对象,在保存的list或者diction集合中。...
  • u011484013
  • u011484013
  • 2017年06月29日 17:28
  • 413

Unity3D开发小贴士(九)序列化和反序列化Dictionary

我们知道在Unity里面Dictionary是不能被序列化和反序列化的,如果想要对它进行这两种操作,就需要借助于一个接口ISerializationCallbackReceiver。我们需要创建以Di...
  • ecidevilin
  • ecidevilin
  • 2016年11月13日 22:12
  • 4221

数据 序列化和反序列化 通用方法

将下面的脚本挂到任意物体 [C#] 纯文本查看 复制代码 ?   01 02 03 04 05 06 07 ...
  • liuxiongtao_1124
  • liuxiongtao_1124
  • 2017年02月09日 14:57
  • 381

Unity与C#的序列化与反序列化

序列化操作在我们的开发中使用的十分普遍,本文记录了公司最近分享会上关于这部分的讲解,希望能帮助大家对序列化有更系统的了解。 概念 序列化又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制...
  • oldherowang
  • oldherowang
  • 2017年12月07日 22:07
  • 87

unity3d中ProtoBuf的序列化和反序列化c#

using System; using System.IO; using ProtoBuf; namespace SensorServerPro { class Common { ...
  • zscjob
  • zscjob
  • 2015年10月28日 20:35
  • 1450
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unity 数据 序列化和反序列化 通用方法
举报原因:
原因补充:

(最多只允许输入30个字)