龙空技术网

CocosCreator 中使用proto(2022版)

坏桃子 110

前言:

如今小伙伴们对“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 编译