1.介绍
1.1官方解释
Protobuf应该是Protoc buffers(协议缓冲区),官方解释直接翻译官网的介绍,概括一下就是:
协议缓冲区是一种灵活,高效,自动化的机制,用于序列化结构化数据 - 想想XML,但更小,更快,更简单。 您可以定义数据的结构化结构,然后使用特殊生成的源代码轻松地将结构化数据写入和读取各种数据流,并使用各种语言。 您甚至可以更新数据结构,而不会破坏根据“旧”格式编译的已部署程序。
1.2 通俗解释
protobuf是一种与平台无关,语言无关、可扩展且轻便高效序列化数据结构的协议,可用于网络通讯和数据存储。想象你有一个Person类,类里面有很多成员属性,然后你想把一个Person对象发送到另外一台机器上,一般而言,你是不能直接将这个对象是发送过去的,你需要将这个类序列化,以字节流的形式发送,那么你如何将你的对象序列化,就是一个问题,而且你还要考虑到接收端将数据反序列化。Protobuf就是来做这个事情的,它本身与具体语言无关,支持绝大多数主流编程语言,如C++,java,python,C#等。或者,你可以理解为加密文件,你要发的汉子通过加密后编程了一堆不同排列的小圆点,只要你的朋友有这个加密文件,他就能将你加密的东西翻译过来。
2. 安装
官方的Github下载Protobuf(地址)
1、下载官方包,并得到Google.Protobuf.dll放到Unity工程下的Plugins内。
Github下载Protobuf好后,这里是包含多语言的,找到csharp下的这个打开。然后编译生成Google.Protobuf.dll,新版本好像是用到了.net4.5.将编译好的Google.Protobuf.dll放到Unity工程下的Plugins内。
当然也可以直接导入代码
2、.proto的生成与到.cs的转换
下载完毕后解压得到
设置系统变量(方便bat运行,批量用.proto转换得到.cs)
这里需要在系统变量中添加一下路径,系统变量设置:右键我的电脑-属性-高级系统设置-环境变量-系统变量中找到Path-编辑-新建-输入你的路径 -确定
我这里是E:\Works\Resource\Protobuf\protoc-3.7.0-win64\bin(根据文件放哪来定,结尾为bin)
文件内说明:
红色文件夹内放Proto文件,绿色文件夹在点击 批处理bat后(批量Proto输出为C#.bat)会生成Proto对应的cs文件。
bat内的内容(创建txt,修改后缀为bat,然后编辑,直接复制进去就行):
@echo off
cd Proto
set client_dest_path="..\ProtobufCS"
for