Java开发:序列化和(SerializeField)特性不是很理解

Java开发:序列化和(SerializeField)特性不是很理解

首先,什么是序列化? 百度解释如下

序列化是将对象的状态信息转换为可以存储或传输的形式的过程。 在序列化期间3D植物,对象将其当前状态写入临时或持久存储。 稍后,可以通过从存储中读取或反序列化对象的状态来重新创建该对象。

简单理解unity 序列化unity 序列化,就是在玩游戏存档时,存档中的玩家信息会被保存到一个文件中。 下次打开游戏读取存档时,可以从存档状态继续玩。

Unity 编辑器也是如此。 公共属性的值显示在属性面板中。 我们可以任意修改该值(脚本中对应的值没有改变)。 当我们关闭Unity编辑器并再次打开时,该属性的值就是我们修改的值。 的值,而不是脚本中分配的初始值游戏评测,表示该属性的值为“已存档”

存储位置是Unity的场景文件。 用记事本打开即可查看相应信息。

unityjson序列化_序列化代码_unity 序列化

首先,Unity编辑器是一个软件

当公共属性public int a = 0; 是在脚本中创建的

我们可以在属性面板(Inspector)中给a赋值(例如赋值2)

我们关闭Unity编辑器

再次打开编辑器时a的值为2

表示Unity编辑器已经序列化了公共属性(即记录修改的值,类似于归档)

[SerializeField]属性

强制 Unity 序列化私有字段。 这是一个内部统一序列化函数。 有时我们需要序列化私有或受保护的属性。

使用系统集合;

使用 System.Collections.Generic;

使用系统.IO;

使用 System.Runtime.Serialization.Formatters.Binary;

使用Unity引擎;

公共类测试:MonoBehaviour {

公共 int a = 0;

[序列化字段]

整数 b = 0;

无效更新(){

if (Input.GetKeyDown(KeyCode.A))

一个++;

b++;

if (Input.GetKeyDown(KeyCode.B))

Debug.LogError("a:" + a);

Debug.LogError("b:" + b);

文章来源:https://blog.csdn.net/u012520952/article/details/83213714/