序列化是将数据结构或对象状态转换为Unity可存储并在以后可重构的格式的自动过程。Unity的一些内置功能会使用序列化,比如保存和加载、Inspector窗口、实例化和预制件等功能。数据在Unity项目中的组织方式会影响Unity序列化该数据的方式,并会对项目的性能产生重大影响。
序列化规则
Unity中的序列化程序在实时游戏环境中运行。这对性能有重大影响。因此,Unity中的序列化与其他编程环境中的序列化具有不同的行为。下面列出了一些关于如何在Unity中使用序列化的技巧。
如何确保脚本中的字段被序列化
确保其符合以下条件:
- 为public,或具有SerializeField属性
- 非static
- 非const
- 非readonly
- 具有可序列化的fieldtype(请参阅下面的可序列化的简单字段类型。)
可序列化的简单字段类型
- 具有Serializable属性的自定义非抽象、非泛型类(请参阅下面的如何确保自定义类可序列化。)
- 具有Serializable属性的自定义结构
- 对从UnityEngine.Object派生的对象的引用
- 原始数据类型(int、float、double、bool、string等)
- 枚举类型
- 某些Unity内置类型:Vector2、Vector3、Vector4、Rect、Quaternion、Matrix4x4、Color、Color32、LayerMask、AnimationCurve、Gradient、RectOffset、GUIStyle
可序列化的容器字段类型
- 可序列化的简单字段类型的数组
- 可序列化的简单字段类型的Lis

最低0.47元/天 解锁文章
7739

被折叠的 条评论
为什么被折叠?



