最近在摆弄Unity的Socket,须要用到Protobuf,通常都会有多个协议文件,因此研究了下bat的批处理,下面给出批处理文件代码:java
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文件直接放在协议文件的文件夹中,也能够修改为指定的路径。后端
还有就是生成的路径的文件夹必须存在哦。spa
每次建立时都会删除目标文件夹下面的全部文件,注意不要在目标文件夹下存放其它的文件。.net
我后端使用的是Java,若是是其它语言可查看官方文档进行生成。code
顺便记录一下Protobuf的使用方法,首先,咱们须要下面3个文件(版本2.6.1):blog
1.Google Protobuf编译器:http://pan.baidu.com/s/1qWki4cGip
2.C#版的Protobuf编译器:http://pan.baidu.com/s/1eQB7qgE文档
3.Google Protobuf3种语言的支持类库:http://pan.baidu.com/s/1o6l87ayget
Unity使用Protobuf:编译器
在Assets文件夹下建立Plugins文件夹,将解压后的Protobuf文件夹中的Full文件夹下的unity文件夹拷贝到Plugins文件夹便可。
注意:这种方式在IOS平台上运行会报错,具体的解决方法能够看下面的文章:
Java使用Protobuf:
我这里直接提供建立好的jar文件,直接引入项目便可:http://pan.baidu.com/s/1hqhbbms