前言:
如今小伙伴们对“proto 编译”都比较重视,同学们都想要分析一些“proto 编译”的相关文章。那么小编同时在网络上汇集了一些关于“proto 编译””的相关文章,希望兄弟们能喜欢,朋友们一起来学习一下吧!第一步 安装npm(如果已经安装的请跳到第二步)
下载并安装nodejs
判断是否安装成功;
npm -v //查看版本
第二步 在cocos 安装protobufjs
在cocos项目根目录(assets同级)下打开终端(cmd),执行 npm i protobufjs 等待安装完。
第三步 静态编译proto协议
在cocos 项目中assets 建立两个文件夹 proto(存放原始proto) 和protoDir(编译出来的js),在proto 文件中放入原始proto文件(一般服务器会给前端,这里放入一个五子棋游戏的proto文件),开始项目根目录编译协议;
WuziqiGameMsg.proto 文件内容如下:
package tutorial;message Res9202{ required int32 state = 1 ; //返回状态 0 正确,1错误 optional string emsg =2; //返回状态失败是,告诉的提示 optional playerBasicInfo data=3; //当前座位所以人信息列表}
.\node_modules\.bin\pbjs -t static-module -w commonjs -o .\assets\protoDir\wuziqiMsg.js .\assets\proto\WuziqiGameMsg.proto (这里的版本中的 -t 指定目标格式;-w 指定模块引用规范;-o指定输入输出文件。具体以pbjs -h中的说明为准)
第四步 验证协议在项目中有效性
在用到ts脚本中引用这两个文件
var protobufjs =require('protobufjs');var mm=require("wuziqiMsg");start () { //封包var ss=mm['tutorial']['Res9202']; var msg= ss.create({state:0,emsg:"oksadfasdfsad"}); var bytes=ss.encode(msg).finish(); console.log(bytes.length); //解包 var s=mm['tutorial']['Res9202']; var sMsg= s.decode(bytes); var sData= s.toObject(sMsg); console.log(sData['emsg']);}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #proto 编译