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

来源:互联网 发布:linux 查看登陆用户 编辑:程序博客网 时间:2024/06/05 11:02

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

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(){ }}


阅读全文
0 0
原创粉丝点击