项目实训--Unity多人游戏开发(二、ProtocolBuffers)

本文详细介绍了Protocol Buffers的安装配置过程,包括从官网下载、环境变量配置、验证安装成功,以及如何编写和编译.proto文件。Protocol Buffers是一种高效的数据序列化工具,适用于跨平台、跨语言的通信。文章还展示了具体.proto文件的示例,包括请求码、行动码、返回码和游戏ID的定义。最后,提到了Proto文件编译后的使用将在后续博文中说明。

本期简介

开发前置工作:安装配置protocolbuffers工具。

【protocolbuffer是什么?】
简单理解就是:
谷歌公司开发的一款比json、xml压缩还要小,网络传输还要快,已经实现序列化的通信信息工具。
(因为比json有更多的压缩,因此压缩结果也失去了可读性。)

主要工作

protocolbuffers官网

developers.google.cn/protocol-buffers
上面有csharp的zip但是需要编译。
下载的最新版本3.19的win64.zip可以直接安装。

配置环境

安装好之后再PATH中添加安装位置(bin目录)
在这里插入图片描述

配置好后检验是否配置成功

打开命令行,输入protoc --version
在这里插入图片描述
如果识别了protoc指令并且显示了版本信息就可以开始使用了。

编写proto文件

创建一个记事本文件,修改文件后缀为“.proto”。
可以使用VsCode等编辑器软件,编辑更方便高效。
语法上其实和json挺像的。
关键字或者其他具体的语法可以参考官网。
在这里列出本项目proto文件编写时的前两行文本:

//这是指定此proto文件使用proto3语法,3和2语法有区别,需要注意一下
syntax = "proto3";
//下面是指定包名或者命名空间,C#中想要使用编译出来的内容,需要`using SocketGameProtocol;`
//当然这个名字是自己起的。
package SocketGameProtocol;
//其他规定语句见官方文档吧。

//可以在proto文本中写注释

本文以C#写服务端。但其实proto文本本身不会有区分,仅仅是通过protoc指令编译所写的proto文件时会自动生成所需要语言的代码。(见后文的编译proto文件)

此项目的proto文件放在文末。

编译proto文件

命令行中使用protoc指令,protoc --help会列出帮助菜单。
下面列出编译指令。

protoc --csharp_out ./ --proto_path=./ 要编辑的文件(带后缀)

此条指令
第一个参数--csharp_out是编译为.cs(C#)脚本。这也是上文中提到的,可以编译为需要的语言。而proto文件内部对于不同语言是没有区分的。
如果要java,那么应该换为--java_out。
此参数后面需要一个空格,然后跟上要输出的路径。
./代表输出到当前文件夹。(相对路径的写法)

第二个参数--proto_path是要编译的文件路径。也就是你要编译你刚写的那个proto文件。
紧跟一个=+路径。此条指令的意思是在当前文件夹中找到要编译的文件。所以能成功编译的前提是cmd目录已经切换到proto文件所在的地方。

“./”之后需要跟一个空格!!!!,然后写上文件名要带后缀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值