Protobuf⼀键⽣成代码bat⽂件
最近在摆弄Unity的Socket,需要⽤到Protobuf,⼀般都会有多个协议⽂件,所以研究了下bat的批处理,下⾯给出批处理⽂件代码: 1@echo off
2
3::协议⽂件路径, 最后不要跟“\”符号
4set SOURCE_FOLDER=.
5
6::C#编译器路径
7set CS_COMPILER_PATH=..\Tools\protobuf-net\
8::C#⽂件⽣成路径, 最后不要跟“\”符号
9set CS_TARGET_PATH=..\Client\Assets\Scripts\Net\Protocol
10
11::Java编译器路径
12set JAVA_COMPILER_PATH=..\Tools\
13::Java⽂件⽣成路径, 最后不要跟“\”符号
14set JAVA_TARGET_PATH=..\Server\GameServer\src
15
16::删除之前创建的⽂件
17del %CS_TARGET_PATH%\*.* /f /s /q
18del %JAVA_TARGET_PATH%\*.* /f /s /q
19
20::遍历所有⽂件
21for /f "delims=" %%i in ('dir /b "%SOURCE_FOLDER%\*.proto"') do (
22
23::⽣成 C# 代码
24echo %CS_COMPILER_PATH% -i:%%i -o:%CS_TARGET_PATH%\%%~ni.cs
25    %CS_COMPILER_PATH% -i:%%i -o:%CS_TARGET_PATH%\%%~ni.cs
java创建文件26
27::⽣成 Java 代码
28echo %JAVA_COMPILER_PATH% --java_out=%JAVA_TARGET_PATH% %%i
29    %JAVA_COMPILER_PATH% --java_out=%JAVA_TARGET_PATH% %%i
30
31 )
32
33echo协议⽣成完毕。
34
35pause
可以将上⾯的bat⽂件直接放在协议⽂件的⽂件夹中,也可以修改成指定的路径。
还有就是⽣成的路径的⽂件夹必须存在哦。
每次创建时都会删除⽬标⽂件夹下⾯的所有⽂件,注意不要在⽬标⽂件夹下存放其它的⽂件。
我后端使⽤的是Java,如果是其它语⾔可查看官⽅⽂档进⾏⽣成。
顺便记录⼀下Protobuf的使⽤⽅法,⾸先,我们需要下⾯3个⽂件(版本2.6.1):
Unity使⽤Protobuf:
在Assets⽂件夹下创建Plugins⽂件夹,将解压后的Protobuf⽂件夹中的Full⽂件夹下的unity⽂件夹拷贝到Plugins⽂件夹即可。
注意:这种⽅式在IOS平台上运⾏会报错,具体的解决⽅法可以看下⾯的⽂章:
Java使⽤Protobuf: