ET6框架(九)Protobuf消息使用

在这里插入图片描述


一、序列化和反序列化

序列化 : 将程序中的对象转化为字节序列的过程
反序列化 : 把字节回复为程序中的过程
在网络游戏通讯过程中,实际传输的数据形式是以字节序列进行传输
序列和反序列化的方式有多种,而ET框架则使用较为常见的Protobuf方式。


二、什么是Prototbuf?

Protobuf是一个用于生前通讯消息的代码生成器。
Prototbuf是一个Google公司提出的开源的轻便高效的结果化数据存储格式。
相对于其他常见的序列格式如Json、XML等格式,Protobuf具有易用性更好,自动化,兼容性数量小,序列化及反序列化速度更快等优势。


三、ET工程中的Proto:

在工程中ET > Proto文件夹中的proto有描述文件
在这里插入图片描述

建议使用VSCode打开,并安装vccode-proto3插件进行查看
OuterMessage.proto
此文件定义的是客户端与服务磁端相互通讯的消息格式
InnerMessage.proto
服务器内部相互通讯的消息格式
MongoMessage.proto
服务器内部相互通讯的消息格式,与InnerMessage不同的是MongoMessage可以传输实体

查文件夹Unity.Model > Codes > Model > Generate > Message > OuterMessage.cs 及 OuterOpcode.cs
这两个脚本里包含了一些数据结构,匀为根据OuterMessage.proto来生成

在这里插入图片描述

需要注意的是消息中的不同数据,数值不能相同,如下面的objectQueryRequest消息中已有90 1 2三个数据,则myKey则不能赋值为此三个数值之一
等号和数字之间需要有空格

在这里插入图片描述


四、查看消息类型

在这里插入图片描述


五、生成编译Proto2CS:

优先需要编译Tools
在这里插入图片描述

在工程中ET > Proto文件夹中点击win_startProtoExport.bat文件 进行生成

在这里插入图片描述

关于苹果不能使用.bat文件
可以选择此处Edit Configuration…
在这里插入图片描述

在Tools.App中的Program arguments:中输入 --AppType=Proto2CS,然后点击Apply即可
生成表可也可以这样操作–AppType=ExcelExporter
在这里插入图片描述

生成列表:
在消息表中使用repeated关键字,即可以在生成时自动生也列表
在这里插入图片描述


  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小盖子

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值