Unity序列化与持久化

一、什么是序列化和持久化

这两个概念初学很容易搞混,甚至网上不少博客在提起这两者时也是混为一谈,语焉不详。

1.1什么是持久化

持久化_百度百科 (baidu.com) 百度定义。

简而言之,持久化就是我们将内存中的对象写入存储设备的过程。

1.2 什么是序列化

序列化是指将对象转换成字节流,从而存储对象或将对象传输到内存、数据库或文件的过程。 它的主要用途是保存对象的状态,以便能够在需要时重新创建对象。 反向过程称为“反序列化”。

简而言之,一个想要存储或者传输的对象,必须先序列化为字节流。比如Json序列化,XML序列化。将对象序列化为按Json格式的字节流然后传输。

1.3 两者的区别和联系

持久化将对象永久存储在存储设备上,序列化将对象转化为可以传输的字节序列。

持久化可以总结为先序列化,然后调用文件IO写入。

两者概念有交集,但也有区别。我们借助序列化实现持久化,但我们使用序列化并不一定是为了持久化,也可能仅仅是网络传输。

引用其他博客的一句话:序列化技术侧重于解决对象的传输问题,持久化技术侧重于解决对象的存储问题。

二、序列化方式

2.1 常见的序列化方式

Json序列化,XML序列化,Excel序列化,二进制序列化等等。

2.2 Unity中的序列化

prefab文件,ScriptableObject类,以及Inspector面板上可以调节的属性值等等都是Unity提供的序列化方式。

凡是按照某种格式序列化对象的,我们都可以认为是一种序列化方式,当然我们也可以实现自定义序列化。

文章引用:

深入Unity序列化 - 知乎 (zhihu.com)

序列化 (C#) | Microsoft Learn

猜你喜欢

转载自blog.csdn.net/SliverAsh_/article/details/128772978