zoukankan      html  css  js  c++  java
  • unity3d xml序列化

    using UnityEngine;   
    using System.Collections;   
    using System.Xml;   
    using System.Xml.Serialization;   
    using System.IO;   
    using System.Text;   
       
    public class Reward    
     {   
       public Task task;   
       public Attribute attribute;   
       public Reward () {}   
       public struct Task  
       {   
          [XmlAttribute("taskNo")]   
          public int taskNo{ get; set;}   
          [XmlAttribute("taskReward")]   
          public int taskReward{ get; set;}   
          public Id id1;  
          public Id id2;  
               public Id id3;  
       }  
       public struct Id  
       {  
          [XmlAttribute("flag")]   
          public bool flag{ get; set;}   
          [XmlAttribute("name")]   
          public string name{ get; set;}  
       }  
    }  
      
    public class AchievementManager: MonoBehaviour {   
       Reward reward ;   
       FileInfo t ;  
       string _data;      
       void Start ()   
       {      
        reward = new Reward();  
       t = new FileInfo(Application.dataPath+"\"+ "Achievement.xml");   
       LoadXML();  
       reward.task.id1.name = "杨纯/nate";  
       reward.task.id2.name = "有点笨";  
       reward.task.id3.name = "dlnuchunge";  
       Save();  
       }   
       
       void LoadXML()   
       {   
          if(t.Exists)   
          {   
              StreamReader r = t.OpenText();   
              string _info = r.ReadToEnd();   
              r.Close();   
              _data=_info;   
              if(_data.ToString() != "")   
              {   
                reward = (Reward)DeserializeObject(_data);                
              }   
          }             
       }   
       public void Save()  
       {       
          _data = SerializeObject(reward);   
          StreamWriter writer;   
          if(t.Exists)   
          {   
             t.Delete();    
          }      
          writer = t.CreateText();   
          writer.Write(_data);   
          writer.Close();   
       }     
       string UTF8ByteArrayToString(byte[] characters)   
       {        
          UTF8Encoding encoding = new UTF8Encoding();   
          string constructedString = encoding.GetString(characters);   
          return (constructedString);   
       }   
       
       byte[] StringToUTF8ByteArray(string pXmlString)   
       {   
          UTF8Encoding encoding = new UTF8Encoding();   
          byte[] byteArray = encoding.GetBytes(pXmlString);   
          return byteArray;   
       }   
       
       // Here we serialize our Reward object of reward   
       string SerializeObject(object pObject)   
       {  
          string XmlizedString = null;   
          MemoryStream memoryStream = new MemoryStream();   
          XmlSerializer xs = new XmlSerializer(typeof(Reward));   
          XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);   
          xs.Serialize(xmlTextWriter, pObject);   
          memoryStream = (MemoryStream)xmlTextWriter.BaseStream;   
          XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray());   
          return XmlizedString;   
       }   
       
       // Here we deserialize it back into its original form   
       object DeserializeObject(string pXmlizedString)   
       {   
          XmlSerializer xs = new XmlSerializer(typeof(Reward));   
          MemoryStream memoryStream = new MemoryStream(StringToUTF8ByteArray(pXmlizedString));   
          XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);   
          return xs.Deserialize(memoryStream);   
       }   
    } 
  • 相关阅读:
    Windows FFMPEG开发环境配置
    双网卡单IP实现网卡冗余与负载均衡
    Thinking in Java 4th(Java编程思想第四版)文档、源码、习题答案(偶尔回顾)
    IDEA编译时出现 Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8
    运行java飞行记录器JFR(java flight recorder)
    Java黑科技之源:JVMTI完全解读
    jvisualvm安装visualgc插件
    系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路
    Jenkins 改成中文语言显示
    windows上Jenkins安装及其配置
  • 原文地址:https://www.cnblogs.com/88999660/p/3371193.html
Copyright © 2011-2022 走看看