优秀的编程知识分享平台

网站首页 > 技术文章 正文

CocosCreator 中使用proto(2022版)

nanyue 2025-03-26 14:40:57 技术文章 6 ℃

第一步 安装npm(如果已经安装的请跳到第二步)

https://nodejs.org 下载并安装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']);
}


最近发表
标签列表