美文网首页
cocoscreator中使用protobuf(附带自动转换工具

cocoscreator中使用protobuf(附带自动转换工具

作者: 亮亮同学 | 来源:发表于2020-10-16 13:29 被阅读0次

    需要的工具

    安装node.js nodejs地址

    下载protobufjs protobufjs地址

    操作

    1.安装protobufjs到全局

    npm install -g protobufjs

    将模块安装到全局方便全局使用protobufjs提供的pbjs命令行工具。

    pbjs可以将proto原文件转换成json、js

    pbts,用来将转化后的js文件转为ts

    image.png

    2.把下载好的protobuf中这个文件夹下的protobuf.js文件 把这个文件拖到Creator工程中并且导入为插件

    image.png

    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的引用

    image.png

    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) {}
    }
    
    

    测试结果:


    image.png

    福利: protobuf自动转换工具

    私信我即可获取 自动转换工具

    往期精彩内容:

    TS项目中使用全局变量/对象

    虚拟摇杆功能实现

    无限滚动背景

    子弹追踪实现

    技能cd效果实现

    阅读更多

    相关文章

      网友评论

          本文标题:cocoscreator中使用protobuf(附带自动转换工具

          本文链接:https://www.haomeiwen.com/subject/toezpktx.html