最近在擺弄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