以下是cocoscreator中protobuf比较基础的使用,但也是最有效的使用手段。根据自己的项目 进行修改。
需要的工具 :
安装node.js nodejs地址
下载protobufjs protobufjs地址
操作 :
1 .安装protobufjs到全局
npm install -g protobufjs
将模块安装到全局方便全局使用protobufjs提供的pbjs命令行工具。
pbjs可以将proto原文件转换成json、js
pbts,用来将转化后的js文件转为ts
2 .把下载好的protobuf中这个文件夹下的protobuf.js文件 把这个文件拖到Creator工程中并且导入为插件
3 .创建.proto消息文件
package ntesgame;
message Register {
required string userId = 1;
repeated string deviceId = 2;
option string userToken = 3;
}
ntesgame 是包名,转换成js 或ts 后就是 命名空间
Register 是 消息结构
required 是 必须有的变量
4 .在保存proto文件的目录下打开命令行执行如下命令
将文件中所有的.proto文件转化为一个proto.js文件)
pbjs -t static-module -w commonjs -o proto.js *.proto
将proto.js文件 转为 proto.d.t文件
pbts -o proto.d.ts proto.js
5.protobuf设置为插件后 修改proto.js中protobuf的引用
6.然后把proto.js 或 proto.d.ts文件放入项目代码目录中 即可
7.测试
@ccclass
export default class NewClass extends cc.Component {
// LIFE-CYCLE CALLBACKS:
// onLoad () {}
start () {
let msg = ntesgame.ClientRegister.create({userId:"123",deviceId:"22",userToken:"ff"})
let encode = ntesgame.ClientRegister.encode(msg).finish();
console.log("编码:",JSON.stringify(encode))
this.scheduleOnce(()=>{
let decode = ntesgame.ClientRegister.decode(encode)
console.log("解码:",JSON.stringify(decode))
},3)
}
// update (dt) {}
}
测试结果:
福利: protobuf自动转换工具
长按 下面二维码 或者 搜索 公众号。亮亮同学TT 关注 并发送 protobuf 获取 自动转换工具
往期精彩内容: