【Unity编辑器扩展入门】第5章 关于 SerializedObject

SerializedObject是Unity用于处理序列化数据的工具,它使得在Inspector中编辑对象变得简单。当Unity对象(如 UnityEngine.Object)被保存为资产时,它们会被序列化成二进制或YAML格式。要被序列化的类变量需为公共或带有SerializeField属性,并且不为static、const或readonly。使用SerializedObject,可以通过其提供的方法获取和修改对象的参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.1 什么是 SerializedObject

SerializedObject 是一个经过处理的序列化数据,使 Unity 可以轻松处理。这使得可以从撤消处理和游戏对象轻松访问各种数据并创建预制件。

UnityEngine.Object 和 SerializedObject 之间的关系

在Unity Editor 中,所有对象(UnityEngine.Object)都将转换为 SerializedObject并进行处理。在 Inspector 中编辑组件值时,您不是编辑 Component 的实例,而是编辑 SerializedObject 的实例。

资产与 SerializedObject 的关系

将 UnityEngine.Object 保存为资产时,它将另存为二进制或 YAML 格式的文本数据。 SerializedObject 负责这些序列化。

资产和.meta 文件

资产是实际对象的序列化。 .meta 文件保存导入器设置等。

在导入资产时,会从资产和.meta 文件生成 SerializedObject(如果没有.meta 文件,则默认自动生成),并转换为 UnityEngine.Object。
 

要序列化的类变量

在某些条件下, UnityEngine.Object 的派生类(用户经常触摸 MonoBehaviour,ScriptableObject, Editor, EditorWindow 等)将判断它是一个要序列化的字段。

• 必须是公共变量或具有 SerializeField 属性的字段
• 支持可序列化 Unity 的类型(sbyte, short, int, long, byte, ushort,uint, ulong, float, double, bool, char, string, UnityEngine.Object,Serializable 属性添加类和结构等)

不能序列化的情况,提及以下两个。

• 变量不是 static, const 或 readonly
• 不是抽象类

 5.2 如何使用 SerializedObject

从 SerializedObject 获取参数


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jack Yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值