01.C#转成xml
using System;
using System.Collections;
using System.Collections.Generic;
using System.Xml.Serialization;
using UnityEngine;
[Serializable]
public class Player
{
[XmlAttribute]
public int Id { get; set; }
[XmlAttribute]
public string Name { get; set; }
[XmlArray]
public List<int> List { get; set; }
}
void InitXml()
{
Player player=new Player();
player.Id = 100;
player.Name = "得到";
player.List=new List<int>(){1,2,3};
FileStream stream=new FileStream(Application.dataPath+"/Players",FileMode.Create,FileAccess.ReadWrite,FileShare.ReadWrite);
StreamWriter streamWriter=new StreamWriter(stream,Encoding.UTF8);
XmlSerializer xml=new XmlSerializer(typeof(Player));
xml.Serialize(stream,player);
streamWriter.Close();
stream.Close();
}
}
结果
<?xml version="1.0"?>
<Player xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="100" Name="得到">
<List>
<int>1</int>
<int>2</int>
<int>3</int>
</List>
</Player>
02.xml解析
FileStream stream = new FileStream(Application.dataPath + "/Players.xml", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
XmlSerializer xml = new XmlSerializer(typeof(Player));
Player player = (Player)xml.Deserialize(stream);
stream.Close();
[Serializable]
public class Monster
{
public int Id { get; set; }
public string Name { get; set; }
public List<int> List { get; set; }
}
03.类转成二进制
void Bin()
{
Monster monster=new Monster();
monster.Id = 123;
monster.Name = "弟弟";
monster.List=new List<int>(){2,6,90};
FileStream fileStream=new FileStream(Application.dataPath+"/monster.bytes",FileMode.Create,FileAccess.ReadWrite,FileShare.ReadWrite);
BinaryFormatter bf=new BinaryFormatter();
bf.Serialize(fileStream,monster);
fileStream.Close();
}
void BinF()
{
TextAsset textAsset=UnityEditor.AssetDatabase.LoadAssetAtPath<TextAsset>("Assets"+ "/monster.bytes");
MemoryStream memory=new MemoryStream(textAsset.bytes);
BinaryFormatter bf = new BinaryFormatter();
Monster monster=(Monster)bf.Deserialize(memory);
Debug.Log(monster.Name);
}
[CreateAssetMenu(fileName ="text",menuName ="creatText",order = 0)]
public class AssectSer : ScriptableObject
{
public int id;
public int[] sum;
}