序列化是什么?
序列化就是将对象的状态信息转换为可以存储或传输形式的过程。其实就是将对象持久化,比如说把对象保存为二进制或者是XML的方式。可以将对象序列到流、磁盘、内存和网络等等。相反,反序列化则是将存储或传输形式转换为对象的过程。
有什么用?
(1)以某种存储形式(二进制或者是XML等)使对象持久化。序列化和反序列化用来保存内存中的数据unity 序列化什么意思,它不是C#中独有的技术,比如win7的休眠就是该技术的应用,在C#程序中可以用来保存对象,和对象当前状态,下次打开时通过反序列化获得人物立绘,一般用在服务器启动(反序列化)和关闭(序列化)时保存数据。
(2)使对象的传递更加容易,比如你用ajax向服务器请求信息,服务器可以直接将model对象通过序列化来输出json字符串,也可以通过反序列化将你传过去的json字符串组装成对象,就免去了拼字符串和解析字符串的过程
在.Net里面怎么实现序列化技术
(1)二进制序列化保持类型保真度unity 序列化什么意思数据报告,这对于在应用程序的不同调用之间保留对象的状态很有用。
(2) XML 序列化仅序列化公共属性和字段,且不保持类型保真度。当您要提供或使用数据而不限制使用该数据的应用程序时,这一点是很有用的。
Unity中的Assets序列化实践
要序列化的类继承ScriptableObject基类。
Unity对此基类的描述:
Mark a ScriptableObject-derived type to be automatically listed in the Assets/Create submenu,so that instances of the type can be easily created and stored in the project as “.asset” files.
[CreateAssetMenu(fileName = "TestAssets",menuName ="CreateAssets",order = 0)]
public class AssetsSerialize : ScriptableObject {
public int number;
public string name;
public List<int> numbers = new List<int>();
}
这里添加一个特性CreateAssetMenu,添加此特性将在Assets/Create子目录中出现menuName,点击后创建一个对象名称为TestAssets。
这里创建了一个TestAssets的序列化资源
序列化不会序列化字典所以我们需要字典的时候用List、struct代替
文章来源:https://blog.csdn.net/game_builder/article/details/100737783