Unity序列化学习笔记

        序列化是将数据结构或对象状态转换为Unity可存储并在以后可重构的格式的自动过程。Unity的一些内置功能会使用序列化,比如保存和加载、Inspector窗口、实例化和预制件等功能。数据在Unity项目中的组织方式会影响Unity序列化该数据的方式,并会对项目的性能产生重大影响。

序列化规则

        Unity中的序列化程序在实时游戏环境中运行。这对性能有重大影响。因此,Unity中的序列化与其他编程环境中的序列化具有不同的行为。下面列出了一些关于如何在Unity中使用序列化的技巧。

如何确保脚本中的字段被序列化

确保其符合以下条件:

  1. 为public,或具有SerializeField属性
  2. 非static
  3. 非const
  4. 非readonly
  5. 具有可序列化的fieldtype(请参阅下面的可序列化的简单字段类型。)
可序列化的简单字段类型
  1. 具有Serializable属性的自定义非抽象、非泛型类(请参阅下面的如何确保自定义类可序列化。)
  2. 具有Serializable属性的自定义结构
  3. 对从UnityEngine.Object派生的对象的引用
  4. 原始数据类型(int、float、double、bool、string等)
  5. 枚举类型
  6. 某些Unity内置类型:Vector2、Vector3、Vector4、Rect、Quaternion、Matrix4x4、Color、Color32、LayerMask、AnimationCurve、Gradient、RectOffset、GUIStyle
可序列化的容器字段类型
  1. 可序列化的简单字段类型的数组
  2. 可序列化的简单字段类型的Lis
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

☆平常心☆

若恰好帮到你,便是一场缘分

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

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

打赏作者

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

抵扣说明:

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

余额充值