Unity | 序列化(Serialized)和反序列化(NonSerialized)是什么意思
一、什么是序列化
官方叙述:序列化是将对象的状态信息转换为可以存储或传输的形式的过程。
人话叙述:我们平时输入的代码,实际上是不能储存或者传输的,所以我们需要翻译一下,翻译成能储存或者翻译的文字,这个翻译的过程叫做序列化。
二、什么要序列化
问题:为什么我们平时的代码不能储存?
众所周知,我们储存数据用的是硬盘。
问题:硬盘是如何储存数据的呢?
注释:当其他东西都不变时,电流正着流或者逆向流,可以产生不同的磁场,不同的磁场就会吸引或排斥周围的东西,东西的位置就不同。反之,磁场不同,就可以产生不同的电流(正向或逆向)。
所以,电流会有两个方向,磁场会有两种状态。这两种状态,就是我们说的,计算机只能读懂0和1,因为他只有两种状态。
磁场的状态,就一直留在硬盘里,需要资料的时候,就把这个状态读取一下,保存信息的时候,就用电流改变一下这个磁场状态。
所以,我们想要储存信息,必须把这个信息转换成0或者1,那就必须要翻译,也就是序列化。
三、什么是反序列化
序列化是把信息翻译成机器能认识的语言,那么反序列化就是把机器语言翻译回来。
四、序列化有什么通用好处
官方1:永久性保存对象,保存对象的字节序列到本地文件或者数据库中;
解释:既然已经翻译成计算机能认识的0和1了,就能储存了,就能保存下来了。官方2:通过序列化以字节流的形式使对象在网络中进行传递和接收;
解释:很多硬件(比如数据线),也是用0和1传输信息的,所以翻译了以后,数据线也可以方便的传输这部分内容了。
官方3:通过序列化在进程间传递对象;
解释:不同的软件,用的语言不一样,你不好交换两个软件之间的信息,但是软件都必须要和计算机交流,所以都必须会0和1这个语言,所以你翻译以后,大家可以用0和1传递信息。
五、在Unity里序列化以后
在我们用Unity的时候,面板上会有一些信息,如下。
如果你希望你的信息在Unity的面板上显示出来,就可以用序列化。
反之,如果你希望面板上显示出来的东西,我不想它显示出来,也可以用反序列化。
(并不是所有的都可以序列化和反序列化)
[SerializeField] int i;//序列化 //本来这个i是不会在面板上显示的,但是因为序列化了,所以会显示[NonSerialized] public int i;//反序列化 //本来这个i会在面板上显示,但是因为用了反序列化,所以就不显示了[Serializable] public class Tool_return : MonoBehaviour{} //序列化 //对于类,或者结构体之类的,序列化需要用[Serializable]
Unity | 序列化(Serialized)和反序列化(NonSerialized)是什么意思相关推荐
- java io文件流序列化_Java——Properties集合,Object序列化流与反序列化流,打印流,commons-IO文件工具类...
一.properties集合 集合对象Properties类,继承Hashtable,实现Map接口,可以和IO对象结合使用,实现数据的持久存储. 特点: Hashtable的子类,map集合中的方法 ...
- java伪装反序列化字节流_java对象序列化流和反序列化流
首先创建一个学生类 `import java.io.Serializable; public class Student implements Serializable { private stati ...
- mysql序列化字段反序列化_序列化serialize()与反序列化unserialize()的实例
在写序列化serialize与反序列化unserialize()时,我们先来看看: serialize - 产生一个可存储的值的表示 描述 string serialize ( mixed $valu ...
- (java)IO流对象(六)集合Properties类、序列化流、反序列化流、打印流
[Properties特点] /** 集合对象Properties类特点:* 1. 继承Hashtable,实现Map接口* 2. 该集合无泛型,键值都是字符串* 3. 键值可以存储到集合中,也可以存 ...
- Java序列化(Serializable)与反序列化
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:589809992 我们一起学Java! 序列化是干什么的 简单说就是为了保存在内存 ...
- 深入C#学习系列一:序列化(Serialize)、反序列化(Deserialize)
序列化概述: 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象 ...
- 序列化流与反序列化流
序列化是把对象特性保存到物理介质上,反序列化是把保存在物理介质上的对象取出还原成对象. 能被序列化的对象所属的类必须实现Serializable接口. 1.对象序列化流ObjectOutputStre ...
- IO-5(InputStreamReader、OutputStreamWriter、序列化流、反序列化流、Serializable、transient)
1.InputStreamReader 字节流通向字符的桥梁 所有已实现的接口: Closeable, Readable 直接已知子类: FileReader 将字节输入流转换为字符输入流 使用指定的 ...
- 使用 Newtonsoft.Json; 序列化正常,反序列化异常的一点思考
序列化后的字符串都正常,信息完整,但是反序列化却出现了异常. 1. 首先是不能反序列化. 我猜测是我要序列化的类 写的有问题. 我的类实例化的时候,需要向构造函数里传一个数组参数,然后用该数组参数为类 ...
最新文章
- 大端模式字节序和位序以及操作
- 云炬创业政策学习笔记20210112
- 如何连接Linux上的服务器 网络编程,Linux 网络编程 一
- 前端笔记-Vue框架的基本认识
- Swift 面向协议编程的那些事
- 用 SOLID 原则保驾 React 组件开发
- 写给自己,关于对纯技术的追求,以及为了金钱与前途的技术追求
- (转)某公司ICO涉嫌“擅自发行股票罪” 判处有期徒刑一年六个月
- 【领英如何一键批量有效地加好友?】
- shell脚本加密工具shc
- 中国研发经费投入逼近2万亿,保持两位数增速,企业成为主要力量
- 原创 | 罗勇:立足敏捷开放,推动直销银行向智能银行迈进
- mysql numeric 空值_mysql数据库不能添加NULL值,该怎么解决 - numeric
- 联想万全r520服务器安装系统,联想(lenovo)万全R520服务器图解
- python gdal安装_Windows 7 X64Python安装GDAL
- 【git】You have not concluded your merge (MERGE_HEAD exists).
- JAVA Scanner 类用法小结
- HTB打靶(Active Directory 101 Mantis)
- COleDateTime ParseDateTime 方法
- 20221014 复数、双曲复数、对偶数
热门文章
- html全屏遮罩层,js遮罩层穿透 怎么用JS弄遮罩层?全屏,有透明
- 自学python怎么练习_自学Python(4,if 语句练习)
- laravel pjax
- 防Vue系列-09 deepProperty封装Object.defineProperty
- 关于启动eclipse报return code=1的错误的问题解决
- Silverlight/Windows8/WPF/WP7/HTML5周学习导读(7月16日-7月22日)
- VSCode自动保存文件设置
- Ubuntu文件权限
- 7-12 秀恩爱分得快 (25 分)
- 【vue3】css原子化