UN5L4——Protobuf

Protobuf

Protobuf全称是protocol-buffers(协议缓冲区),是谷歌提供给开发者的一个开源的协议生成工具
它的主要工作原理和我们之前做的自定义协议工具类似,只不过它更加的完善,可以基于协议配置文件生成
C++、Java、C#、Objective-C、PHP、Python、Ruby、Go等等语言的代码文件

它是商业游戏开发中常常会选择的协议生成工具,有很多游戏公司选择它作为协议工具来进行网络游戏开发
因为它通用性强,稳定性高,可以节约出开发自定义协议工具的时间

protocol-buffers官网:Protocol Buffers Documentation (protobuf.dev)

Protobuf的使用流程

  1. 下载对应语言要使用Protobuf相关内容
  2. 根据配置规则编辑协议配置文件
  3. 用Protobuf编译器,利用协议配置文件生成对应语言的代码文件
  4. 将代码文件导入工程中进行使用

下载Protobuf相关内容——生成DLL文件

  1. 在官网中前往下载地址,protocol-buffers官网:Protocol Buffers Documentation (protobuf.dev)

  2. 下载protobuf-csharp

    (注:在2024年的今天,已经不需要选择特定语言的安装包,直接下载github上release中的最近Pre-Release版本即可)
    image

    解压后里面已经包含了所有语言的Protobuf相关

  3. 解压后打开csharp\src​中的Google.Protobuf.sln

  4. 选择Google.Protobuf​右键生成 dll文件

    生成时无法解析.NET SDK报错问题

    请注意:如果生成时报错:image

    这是因为你的电脑上安装了另外一个版本.NET SDK导致的,你需要修改为你所安装的.NET SDK
    如何查看安装了什么.NET SDK,使用cmd或者powershell,输入dotnet --list-sdks​,即可查看你所拥有的.NET SDK

    image

    然后,在你下载的protobuf文件夹里找到一个叫global.json​的文件,将其中的version​改为你所拥有的.NET SDK
    注意:下图内的version具体输入什么由你电脑上安装的.NET SDK版本为准,下图的8.0.202仅代表笔者的版本

    image

    修改完毕后,重新生成

  5. csharp\src\Google.Protobuf\bin\Debug​路径下找到对应.net版本的dll文件(我们使用4.5即可)

    image

  6. 将net45中的dll文件导入到Unity工程中的Plugins插件文件夹中

下载Protobuf相关内容——准备编译器

  1. 在官网中前往下载地址,protocol-buffers官网:Protocol Buffers Documentation (protobuf.dev)

  2. 下载protoc-版本-win32或者64(没看到的话,记得点一下Show all __ assets​)

    image

  3. 解压后获取bin文件夹中的protoc.exe可执行文件,
    可将其放入Unity工程中,方便之后的使用(你也可以不放入Unity工程,记住它的路径即可)