cocos creator TS中如何使用protobuf

一直没有时间看在ts中如何使用protobuf,今天整理了下,并弄了一个配套的自动化处理工具
blog地址:https://blog.csdn.net/nsqks/article/details/113878372
工具地址(也可以使用npm安装):https://gitee.com/nsqks/proto-tool.git
使用中有什么问题的话,或者有什么bug,可以随时交流(我是在MAC 2.4.3版本测试的,window环境下暂未测试,应该没啥太大的问题,注意pbjs pbts是否在全局环境下可以访问就可以了)

// account.proto
package protoTest;
//角色对象
message Player
{
    optional int64 id = 1;
    optional string name = 2;
    optional int32 level = 3;//等级
}
npm install protobufjs -g // 全局安装,注:项目中安装也可以,在执行下面命令的时候,指明相对路径
// 并将安装后的目录下的dist/protobuf.js拖到cocos creator 并设置为插件,全部勾选
// 在.proto同级文件夹下,执行:
pbjs -t static-module -w commonjs -o account.js account.proto
// 修改生成后的account.js文件
var $protobuf = require(“protobufjs/minimal”);
为
var $protobuf = protobuf;

在account.js同级目录下执行:pbts -o account.d.ts account.js
// 使用
import protoTest from "./account" // 相对路径
let ob = {
        id: 1,
        name:"nsqks",
        level:9
    }
let accountProtobuf = protoTest.Player.create(ob);
let buf = protoTest.Player.encode(accountProtobuf).finish();
cc.log(buf);
let testData = protoTest.Player.decode(buf);
cc.log(testData);

配套自动化工具安装:npm install @nsqks/prototools
主要是用于处理.proto为我们可使用的文件的自动化流程

2赞