ProtocolBuf 协议

主要参考 知乎上皮皮关专栏

今天主角是来自谷歌的——Protocol Buffer,简称protobuf。英文直译过来就是协议缓冲区。是一种独立于语言,独立于平台的数据交换格式。
protobuf有自己专用的描述文件(.proto),有自己的编译器protoc与对多种编程语言提供的API。
主要作用在于为数据储存、网络通信等提供一种基于二进制的格式,是一种高效率的序列化工具。
想必熟悉编程的小伙伴们一定对序列化有所认识,特别是Json,XML这一类比较常用的数据交换格式。

快速入门

谷歌项目地址

项目示例,使用3.7.1版本,后续版本引入 system.memory,Unity 使用的是 .net framework,并没有 system.memory,而 .net core 中有,还未尝试自行引入行不行。

  • 下载对应版本对应语言的项目代码。

  • 编译后得到对应的 .dll文件 并导入 Unity 中,这里的示例不光导入了最原始的 Protoc库 也导入了对应的 Json库。

  • 下载对应的根据.protoc 生成代码工具,并使用批处理命令批量处理。参考自动生成(使用.bat批处理命令),示例中也进行了整合。

    1
    2
    3
    4
    5
    6
    7
    @echo off
    for %%i in (*.proto) do (
    protoc --csharp_out=../ProtocCS/ %%i
    rem 从这里往下都是注释,可忽略
    echo From %%i To %%~ni.cs Successfully!
    )
    pause
  • 最后一步,整合到 Unity 项目中。具体可以参照示例。

Protoc 语法

官方文档 需要梯子

翻译参考

Protoc 调用方法

官方文档 需要梯子

翻译参考

0%