Odin-4.扩展序列化

Odin序列化在Unity中是对内置序列化的扩展,通过实现ISerializationCallbackReceiver接口补充Unity序列化。支持从SerializedBehaviour等类派生进行自动序列化,也可以通过特性标记进行序列化。Odin提供额外功能,如支持Dictionary、自引用、循环引用和多种格式(Nodes、Binary、Json)。在迁移过程中,为保持数据不丢失,建议保留原有Unity序列化字段并复制到Odin字段。此外,Odin还提供手动序列化和调试工具。
摘要由CSDN通过智能技术生成

Odin扩展序列化

参考 https://odininspector.com/tutorials/serialize-anything/odin-serializer-quick-start

定义序列化类

Odin 序列化是在unity内置序列化的基础上进行扩展,而不是取代
本质上是实现了 ISerializationCallbackReceiver 接口,在 unity 序列化之后执行 Odin 序列化进行补充

  • 从这些类派生的类,会自动执行 Odin 序列化:

    • SerializedBehaviour
    • SerializedComponent
    • SerializedMonoBehaviour
    • SerializedNetworkBehaviour
    • SerializedScriptableObject
    • SerializedStateMachineBehaviour
    • SerializedUnityObject
  • 无法从上面类派生的,可以这样

    • 如果你的类从 ScriptableObject 派生
          [ShowOdinSerializedPropertiesInInspector]
          public class CustomSerializedScriptableObject : ScriptableObject, ISerializationCallbackReceiver
          {
             
              [SerializeField, HideInInspector]
              private SerializationData serializationData;
      
              void ISerializationCallbackReceiver.OnAfterDeserialize()
              {
             
                  UnitySerializationUtility.DeserializeUnityObject(this, ref this.serializationData);
              }
      
              void ISerializationCallbackReceiver.OnBeforeSerialize()
              {
             
                  UnitySerializationUtility.SerializeUnityObject(this
Odin 将催化你的 Unity 工作流程,使它轻易地为你和整个团队构建功能强大并适用于高级用户的编辑器。 Odin 能够完美部署到原有的工作流程中,无需费力的集成工作,让您能够序列化任何内容,并使用 80 多个全新检测器属性、无样板代码和更多功能来使用 Unity! 看看 2.1 版有什么更新! 亮点 - 轻松集成 - 纯编辑器模式 - Odin 编辑器窗口 - 输入验证 - 序列化任何对象 - 强大的列表 - 惊人的扩展性 - 调色板 - 字典 - 还有更多! · 轻松集成: Odin 很容易操作,并且不会打破你的已有工作流程。实际上你甚至不需要继承任何东西,也就是说你的现有编辑器将继续与 Odin 适用。 · 纯编辑器模式: 仅使用 Odin 的编辑器改进,完全禁用序列化。 · Odin 编辑器窗口: 您现在可以使用 Odin 来快速创建自定义的编辑器窗口,帮助组织您的项目和游戏数据。 · 输入验证: 通过允许您的开发者设置场景和输入验证来赋能您的整个团队,让 Unity 的使用对艺术家和开发者来说变得前所未有的容易。 · 序列化任何对象: Odin 使用我们评级很高的自定义序列化协议,让您既可以继承我们的 SerializedBehaviour、SerializedScriptableObject 等,也可以为您已有的类添加几行新代码,让可以序列化的任何内容都得到序列化。是的,甚至是多态类型! 在 2018.3 以上版本中,Odin 序列化的预制件由于嵌套的预制系统而被弃用。 · 功能强大的列表: 所有实现 Microsoft IList 接口的数组和列表均由我们强大的列表绘制器绘制; 拖放、插入和删除单个项目、多维数组、表、交叉列表,甚至是跨窗口的项目拖动、分页、嵌套列表绘制和更多! · 惊人的可扩展性: 强大而灵活的 API 让你轻易扩展和修改检查器的绘制方式。快速创建全新的属性组类型和自定义绘画器! • 更多内容! Odin 还添加了词典、自定义布局、资源列表、值下拉列表、嵌入式编辑器、调色板,甚至更多内容! 平台支持 功能丰富且得到优化的 Odin 序列化器支持: - 桌面 - Android - iOS - WebGL - PlayStation - Xbox - Nintendo Switch - Oculus - 所有的 IL2CPP 平台 - UWP 仅得到 IL2CPP 后端的支持
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值