当前位置 : 主页 > 大数据 > 区块链 >

Protobuf一键生成代码bat文件

来源:互联网 收集:自由互联 发布时间:2021-06-22
最近在摆弄Unity的Socket,需要用到Protobuf,一般都会有多个协议文件,所以研究了下bat的批处理,下面给出批处理文件代码: 1 @echo off 2 3 :: 协议文件路径, 最后不要跟“\”符号 4 set SO

最近在摆弄Unity的Socket,需要用到Protobuf,一般都会有多个协议文件,所以研究了下bat的批处理,下面给出批处理文件代码:

 1 @echo off
 2 
 3 ::协议文件路径, 最后不要跟“\”符号
 4 set SOURCE_FOLDER=.
 5 
 6 ::C#编译器路径
 7 set CS_COMPILER_PATH=..\Tools\protobuf-net\ProtoGen\protogen.exe
 8 ::C#文件生成路径, 最后不要跟“\”符号
 9 set CS_TARGET_PATH=..\Client\Assets\Scripts\Net\Protocol
10 
11 ::Java编译器路径
12 set JAVA_COMPILER_PATH=..\Tools\protoc\protoc.exe
13 ::Java文件生成路径, 最后不要跟“\”符号
14 set JAVA_TARGET_PATH=..\Server\GameServer\src
15 
16 ::删除之前创建的文件
17 del %CS_TARGET_PATH%\*.* /f /s /q
18 del %JAVA_TARGET_PATH%\*.* /f /s /q
19 
20 ::遍历所有文件
21 for /f "delims=" %%i in ('dir /b "%SOURCE_FOLDER%\*.proto"') do (
22     
23     ::生成 C# 代码
24     echo %CS_COMPILER_PATH% -i:%%i -o:%CS_TARGET_PATH%\%%~ni.cs
25     %CS_COMPILER_PATH% -i:%%i -o:%CS_TARGET_PATH%\%%~ni.cs
26     
27     ::生成 Java 代码
28     echo %JAVA_COMPILER_PATH% --java_out=%JAVA_TARGET_PATH% %%i
29     %JAVA_COMPILER_PATH% --java_out=%JAVA_TARGET_PATH% %%i
30     
31 )
32 
33 echo 协议生成完毕。
34 
35 pause

可以将上面的bat文件直接放在协议文件的文件夹中,也可以修改成指定的路径。

还有就是生成的路径的文件夹必须存在哦。

每次创建时都会删除目标文件夹下面的所有文件,注意不要在目标文件夹下存放其它的文件。

我后端使用的是Java,如果是其它语言可查看官方文档进行生成。

 

顺便记录一下Protobuf的使用方法,首先,我们需要下面3个文件(版本2.6.1):

1.Google Protobuf编译器:http://pan.baidu.com/s/1qWki4cG

2.C#版的Protobuf编译器:http://pan.baidu.com/s/1eQB7qgE

3.Google Protobuf3种语言的支持类库:http://pan.baidu.com/s/1o6l87ay

 

Unity使用Protobuf:

在Assets文件夹下创建Plugins文件夹,将解压后的Protobuf文件夹中的Full文件夹下的unity文件夹拷贝到Plugins文件夹即可。

注意:这种方式在IOS平台上运行会报错,具体的解决方法可以看下面的文章:

文章1

文章2

Java使用Protobuf:

我这里直接提供创建好的jar文件,直接引入项目即可:http://pan.baidu.com/s/1hqhbbms

来自:https://www.cnblogs.com/hammerc/p/4663469.html

网友评论