用途:MemoryPack 是 C# 的高性能零分配序列化器,本技能整理其在 Unity 中的序列化用法、自定义格式化器与性能优化模式,覆盖存档数据、网络消息、资产数据、缓存/持久化及高频序列化需求。
主要能力:以 [MemoryPackable] partial 类标注可序列化类型,用 MemoryPackSerializer.Serialize/Deserialize 完成字节级读写;为 Vector3、Quaternion、Color、AnimationCurve 等 Unity 类型编写并注册 MemoryPackFormatter;通过 MemoryPackUnion 支持多态(如技能、网络消息基类);用 GenerateType.VersionTolerant 与 MemoryPackOrder 实现版本兼容;用 MemoryPackIgnore 跳过运行时引用;用 OnDeserializing 初始化集合。
使用方式:类上加 [MemoryPackable] 并声明为 partial;Unity 类型需自定义格式化器,并在 RuntimeInitializeOnLoadMethod 中通过 MemoryPackFormatterProvider.Register 注册;多态使用 [MemoryPackUnion(index, typeof(...))];存档类型建议用 VersionTolerant 并标注字段顺序;高频场景复用 ArrayBufferWriter<byte> 或基于 span 反序列化。
适用场景:游戏存档、网络消息打包与分发、资产数据序列化、缓存与持久化系统。
限制:需为可序列化类型添加特性和 partial;部分 Unity 类型需自写格式化器;union 顺序影响反序列化结果;旧存档需用 VersionTolerant 迁移;大量无用字段会增大序列化体积。资料未提供具体安装命令、收费与平台支持信息。