Unity使用protobuf-net总结

本文介绍了在Unity中使用protobuf-net的步骤,包括如何解决编译问题、使用ProtoGen工具转换.proto文件,以及protobuf-net的消息定义和数据类型的详细说明。
摘要由CSDN通过智能技术生成

之前就有了解过protobuf-net ,一直没用过,今天遇到了,重新学习下。    

(1)Unity中导入protobuf-net

拷贝进unity后发现编译报错,解决方法:建立一个新的文件smcs.rsp,内容是-unsafe,前后都无空格,该文件放在 Assets 目录下,需要重启下Unity。

下载地址:https://download.csdn.net/download/menghuangxiao/10967453

(2)ProtoGen工具将“*.proto”文件转换成“*.cs”

新建bat文件,写入以下命令执行即可:

protogen.exe -i:protos\ReturnMessage.proto -o:cs\ReturnMessage.cs

注意:“ReturnMessage.proto”就是需要转换的文件,路径为相对路径

下载地址:https://download.csdn.net/download/menghuangxiao/10967456

(3)protobuf-net 的使用

要通信,必须有协议,否则双方无法理解对方的码流。在protobuf中,协议是由一系列的消息组成的。因此最重要的就是定义通信时使用到的消息格式。

 

Protobuf消息定义

消息由至少一个字段组合而成,类似于C语言中的结构。每个字段都有一定的格式。

字段格式:限定修饰符① | 数据类型② | 字段名称③ | = | 字段编码值④ | [字段默认值⑤]

①.限定修饰符包含 required\optional\repeated

 

Required: 表示是一个必须字段,必须相对于发送方,在发送消息之前必须设置该字段的值,对于接收方,必须能够识别该字段的意思。发送之前没有设置required字段或者无法识别required字段都会引发编解码异常,导致消息被丢弃。

Optional:表示是一个可选字段,可选对于发送方,在发送消息时,可以有选择性的设置或者不设置该字段的值。对于接收方,如果能够识别可选字段就进行相应的处理,如果无法识别,则忽略该字段,消息中的其它字段正常处理。---因为optional字段的特性,很多接口在升级版本中都把后来添加的字段都统一的设置为optional字段,这样老的版本无需升级程序也可以正常的与新的软件进行通信&

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值