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

 @echo off

 ::协议文件路径, 最后不要跟“\”符号
set SOURCE_FOLDER=. ::C#编译器路径
set CS_COMPILER_PATH=..\Tools\protobuf-net\ProtoGen\protogen.exe
::C#文件生成路径, 最后不要跟“\”符号
set CS_TARGET_PATH=..\Client\Assets\Scripts\Net\Protocol ::Java编译器路径
set JAVA_COMPILER_PATH=..\Tools\protoc\protoc.exe
::Java文件生成路径, 最后不要跟“\”符号
set JAVA_TARGET_PATH=..\Server\GameServer\src

::删除之前创建的文件
del %CS_TARGET_PATH%\*.* /f /s /q
del %JAVA_TARGET_PATH%\*.* /f /s /q ::遍历所有文件
for /f "delims=" %%i in ('dir /b "%SOURCE_FOLDER%\*.proto"') do ( ::生成 C# 代码
echo %CS_COMPILER_PATH% -i:%%i -o:%CS_TARGET_PATH%\%%~ni.cs
%CS_COMPILER_PATH% -i:%%i -o:%CS_TARGET_PATH%\%%~ni.cs ::生成 Java 代码
echo %JAVA_COMPILER_PATH% --java_out=%JAVA_TARGET_PATH% %%i
%JAVA_COMPILER_PATH% --java_out=%JAVA_TARGET_PATH% %%i ) echo 协议生成完毕。 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

Protobuf一键生成代码bat文件的更多相关文章

  1. Reg2Bat_By Slore(生成同名bat文件,支持XP WIN7 WIN7X64).vbs

    原文http://slore.blogbus.com/logs/52627038.htmlSlore编写的这个reg文件转换为bat文件,是逐句转换的,不是通过批处理生成临时reg文件然后导入的方法, ...

  2. Mybatis-Plus一键生成代码

    Mybatis-Plus一键生成代码 一.闲言碎语 闲来无事看了看了MP的官网看到一键生成的代码更新了! 整个Ui风格都变了,遂决定瞅一眼新的代码生成器 官网地址~~ 二.引入依赖 新的代码生成只有在 ...

  3. 【vsCode】识别.vue/一键生成.vue模板文件

    1.安装插件Vetur 结果 ---> .vue代码识别彩标 2.配置.vue文件模板,以便快速一键生成格式化 2.1新建代码片段 File->Preferences->User S ...

  4. Fiddler抓包一键生成代码

    首先我们的需求场景是 用Fiddler抓到某个接口调用后,用代码来模拟调用,一般我们写代码会有3个步骤: 1设置http请求相关的参数:header,method,url,cookie等 2设置pos ...

  5. 一键生成JNI头文件方法二

    经常使用java的同学一定都接触过JNI(Java Native Interface)吧.JNI为我们提供了java<---->C/C++之间的接口,使得我们可以在java中调用C程序,以 ...

  6. ​IntelliJ IDEA使用技巧—使用EasyCode插件一键生成代码04期

    在现如今的软件开发过程中,软件开发人员将很多的精力放在重复的编码中.特别是流行的MVC架构模式下,项目各个层次的功能更加独立,这也间接的造成了代码的相似度更高.因此需要寻找一种可以减少软件开发人员重复 ...

  7. 【Idea插件】kotlin的orm框架一键生成代码框架

    @font-face { font-family: octicons-link; src: url("data:font/woff;charset=utf-8;base64,d09GRgAB ...

  8. delphi 7 生成 调用 bat文件的exe文件

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  9. BAT文件的调用

    分成2个步骤,首先生成一个bat文件,然后调用批处理文件 1.生成.bat文件 入参为文件的内容,filePath为绝对路径,且需要扩展名(这个方法不局限于生成.bat文件,也可以生成其他扩展名文件) ...

随机推荐

  1. 函数fil_io

    /********************************************************************//** Reads or writes data. This ...

  2. Qt之进程间通信(QProcess)

    简述 QProcess可以在应用程序内部与其它进程通信,或启动其它应用程序.与在终端机之类的命令输入窗口上使用名称和参数是一样的,可以使用QProcess提供的函数start()启动进程.可以注册QS ...

  3. SQL复制表及表结构

    复制表结构和数据SQL语句 1:复制表结构及数据到新表 select * into 目的数据库名.dbo.目的表名 from 原表名 select * into my0735home.dbo.info ...

  4. [转]Jquery Ajax用法

    原文地址:http://www.php100.com/html/program/jquery/2013/0905/6004.html jQuery学习之jQuery Ajax用法详解 来源:   时间 ...

  5. html5客户端跨域访问php服务端数据

    客户端代码: var param = $.param( { feed:JSON.stringify({ content:'abcd' }) } ); $http({ url: 'http://61.1 ...

  6. PS流格式

    概念: 将具有共同时间基准的一个或多个PES组合(复合)而成的单一的数据流称为节目流(Program Stream). ES是直接从编码器出来的数据流,可以是编码过的视频数据流,音频数据流,或其他编码 ...

  7. 锋利的jQuery读书笔记---jQuery中的事件

    jQuery中的事件: 1.加载DOM:注意window.onload和$(document).ready()的不同 2.事件绑定 3.合成事件 --2和3的详细信息见代码- <!DOCTYPE ...

  8. 本博客迁移到Github,之后停止更新

    本博客之后停止更新或者更新不是很及时,关注博客请移步   http://waylife.github.io 或者 http://blog.13kbook.com   谢谢支持. Update Time ...

  9. ashx-auth-黑色简洁验证码

    ylbtech-util: ashx-auth-黑色简洁验证码 ashx-auth-黑色简洁验证码 1.A,效果图返回顶部   1.B,源代码返回顶部 /ImageUniqueCode.ashx &l ...

  10. iBatis 和MyBatis区别

    从  iBatis  到  MyBatis ,你准备好了吗? 对于从事 Java EE 的开发人员来说,iBatis 是一个再熟悉不过的持久层框架了,在 Hibernate.JPA 这样的一站式对象 ...