Unity中如何使用MessagePack进行序列化与反序列化

1.MeeagePack简介

image.png
适用于 C# 的极快MessagePack序列化器。它比MsgPack-Cli快 10 倍,并且性能优于其他 C# 序列化器。MessagePack for C# 还内置了对 LZ4 压缩的支持 – 一种极快的压缩算法。性能很重要,尤其是在游戏、分布式计算、微服务或数据缓存等应用程序中。

2.MessagePack使用

2.1下载MessagePack的Unity专用包

github地址:github.com/MessagePack…

进入上述网址,在右侧找到release,点击进入
image.png

找到UnityPackage包,下载
image.png

2.2在Unity项目中导入MessagePack

打开Unity项目,选择菜单栏Assets/Import Package,选择刚刚下载的UnityPackage包
image.png

选择之后会弹窗如下,选择全部,点击Import导入即成功
image.png

2.3代码自动生成器

利用MessagePack进行序列化与反序列化,需要将要序列化的类用属性[MessagePackObj]标识,要序列的数据类型的权限必须是公开(Public)的,当然也允许私有(Private),详细使用请参考MessagePack官方使用,要序列化的数据类型用[key(0)]进行标识,括号里的int值依次加一。这里messagePack提供了代码自动生成器,导入unityPackage同时也会生成自动代码生成器,位于Windows-MessagePack-CodeGenerator。点击后会弹出代码生成器,界面如下:
image.png

第一栏为输入路径,这里输入的路径为你想要序列化的CS文件位置,如图,我将所有要序列化的cs文件放在Assets文件下的Libs文件夹。第二栏为输出路径,如图我定义为Assets文件下的MessagePack文件夹,点击Generate后,所有序列化的代码将自动生成输出到MessagePack文件夹下。生成成功后Unity控制台将会打印相关的日志信息,如下:
image.png

同时也可以查看输出文件下是否新增了新自动生成的代码,如下:
image.png

3.在Unity中的实际应用

利用MessagePack进行序列化与反序列化,可以实现项目的配置、数据的快速保存即加载,在实际工程的应用可以参考我的上一篇文章如何用Unity写一个“健壮”的贪吃蛇项目。里面用MessagePack实现了游戏设置即游戏记录数据的保存及加载。

关于MessagePack在Unity项目中的简单使用介绍就到这里了,更多使用欢迎大家评论区留言讨论,谢谢!

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MY6lCN7s' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片