UN5L4——Protobuf
UN5L4——Protobuf
Protobuf
Protobuf全称是protocol-buffers(协议缓冲区),是谷歌提供给开发者的一个开源的协议生成工具
它的主要工作原理和我们之前做的自定义协议工具类似,只不过它更加的完善,可以基于协议配置文件生成
C++、Java、C#、Objective-C、PHP、Python、Ruby、Go等等语言的代码文件
它是商业游戏开发中常常会选择的协议生成工具,有很多游戏公司选择它作为协议工具来进行网络游戏开发
因为它通用性强,稳定性高,可以节约出开发自定义协议工具的时间
protocol-buffers官网:Protocol Buffers Documentation (protobuf.dev)
Protobuf的使用流程
- 下载对应语言要使用Protobuf相关内容
- 根据配置规则编辑协议配置文件
- 用Protobuf编译器,利用协议配置文件生成对应语言的代码文件
- 将代码文件导入工程中进行使用
下载Protobuf相关内容——生成DLL文件
-
在官网中前往下载地址,protocol-buffers官网:Protocol Buffers Documentation (protobuf.dev)
-
下载
protobuf-csharp
(注:在2024年的今天,已经不需要选择特定语言的安装包,直接下载github上release中的最近非
Pre-Release
版本即可)
解压后里面已经包含了所有语言的Protobuf相关
-
解压后打开
csharp\src
中的Google.Protobuf.sln
-
选择
Google.Protobuf
右键生成 dll文件生成时无法解析.NET SDK报错问题
请注意:如果生成时报错:
这是因为你的电脑上安装了另外一个版本.NET SDK导致的,你需要修改为你所安装的.NET SDK
如何查看安装了什么.NET SDK,使用cmd或者powershell,输入dotnet --list-sdks
,即可查看你所拥有的.NET SDK
然后,在你下载的protobuf文件夹里找到一个叫
global.json
的文件,将其中的version
改为你所拥有的.NET SDK
注意:下图内的version
具体输入什么由你电脑上安装的.NET SDK版本为准,下图的8.0.202仅代表笔者的版本
修改完毕后,重新生成
-
在
csharp\src\Google.Protobuf\bin\Debug
路径下找到对应.net版本的dll文件(我们使用4.5即可)
-
将net45中的dll文件导入到Unity工程中的Plugins插件文件夹中
下载Protobuf相关内容——准备编译器
-
在官网中前往下载地址,protocol-buffers官网:Protocol Buffers Documentation (protobuf.dev)
-
下载protoc-版本-win32或者64(没看到的话,记得点一下
Show all __ assets
)
-
解压后获取bin文件夹中的protoc.exe可执行文件,
可将其放入Unity工程中,方便之后的使用(你也可以不放入Unity工程,记住它的路径即可)