网上查了比较多的资料,看的稀里糊涂。说说.net4.0下如何方便使用Protobuf吧.

两种用法:

1、网上查到在NuGet(VisualStudio的一个插件平台)上有一个.net移植版的Protobuf。我没采用这一个,具体不知道方便不方便。

2、官方的Github下载Protobuf(https://github.com/protocolbuffers/protobuf),我采用这种方式。

我的用法:

1、下载官方包,并得到Google.Protobuf.dll放到Unity工程下的Plugins内。

1、Github下载Protobuf好后,这里是包含多语言的,找到csharp下的这个打开。然后编译生成Google.Protobuf.dll,新版本好像是用到了.net4.5.将编译好的Google.Protobuf.dll放到Unity工程下的Plugins内。

Unity 使用Protobuf3.0踩坑日记(.net4.x)

 

Unity 使用Protobuf3.0踩坑日记(.net4.x)Unity 使用Protobuf3.0踩坑日记(.net4.x)

至此,官方的DLL提取完毕。序列化等功能需要用到dll,在用到的类中进行using命名空间就行了。

序列化,官方有提供案例:

序列化类.WriteTo    序列化类.Parser.ParseFrom

Unity 使用Protobuf3.0踩坑日记(.net4.x)

2、*.proto的生成与到*.cs的转换

https://github.com/protocolbuffers/protobuf/releases下载对应平台和版本的转换文件。我这边是PC 下载的protoc-3.7.0-win64

下载完毕后解压得到Unity 使用Protobuf3.0踩坑日记(.net4.x)

 

设置系统变量(方便bat运行,批量用.proto转换得到.cs)

这里需要在系统变量中添加一下路径,系统变量设置:右键我的电脑-属性-高级系统设置-环境变量-系统变量中找到Path-编辑-新建-输入你的路径 -确定             

我这里是E:\Works\Resource\Protobuf\protoc-3.7.0-win64\bin(根据文件放哪来定,结尾为bin)

文件内说明:

红色文件夹内放Proto文件,绿色文件夹在点击 批处理bat后(批量Proto输出为C#.bat)会生成Proto对应的cs文件。Unity 使用Protobuf3.0踩坑日记(.net4.x)

bat内的内容(创建txt,修改后缀为bat,然后编辑,直接复制进去就行):

@echo off
cd Proto
set client_dest_path="..\ProtobufCS"
for %%i in (*.*) do protoc --csharp_out=%client_dest_path% %%i
echo success
pause

运行bat后,ProtobufCS内就是你的.cs文件啦。Unity 使用Protobuf3.0踩坑日记(.net4.x)

 

到这里,protobuf的序列化,以及proto到.cs的转换就已经全部完成了。proto的话以我现在了解需要自己手动去写。具体写法和语法参照官网吧。如果各位有好的方法希望能够交流。

相关文章: