【插件发布汇】第二弹 《protobuf creator》方便快捷小工具

Protobuf Creator

简要概述

protobuf creator 是基于 protobufjs 库,针对 Typescript 语言,简便、快速生成 protobuf 静态文件的小工具

功能列表

  • 生成静态 javascript 文件和 typescript 描述文件
  • 可调整生成文件包含方法,从而减小文件大小
  • 可递归读取指定目录下符合条件的 proto 定义文件
  • 可监控指定目录下文件变化,从而实时更新生成文件

使用方法

  1. 先导入 protobufjs 库文件并设置为允许在编辑器环境加载
  2. 然后选择 proto 定义文件所在目录并执行生成文件操作
  3. 在 ts 文件中直接调用静态文件的 encode 和 decode 方法即可

示例代码

  • test.proto 文件,如有多个文件建议定义一个统一的包名
syntax = "proto3";
package test;
message Say {
    int32 i32 = 1;
    int64 i64 = 2;
    string str = 3;
}
  • test.ts 文件,挂载在场景中
export default class Test extends cc.Component {
    start () {
        //编码
        const msg = test.Say.encode({str: "hello world", i64: 100, i32: 10}).finish();
        console.log(msg);
        //解码
        const hello = test.Say.decode(msg);
        console.log(hello);
    }
}

支持引擎

  • Cocos Creator 2D v2.4.0
  • Cocos Creator 3D v1.1.1

条件限制

由于目前 Creaator3D 未开发编辑器API,所以未能实现自动刷新生成文件,需要手动刷新

安装方法

由于目前 Creator3D 未开放插件商店,所以需通过 Creator2D 插件商店下载该插件并把插件放入 Creator3D 全局环境或项目的插件包目录下,然后使用 package.3d.json 文件替换 package.json

商店地址


【第一弹】版著快船

5赞

版本更新:1.0.2
1、解除条件限制,可以在C3D环境中使用对话框和通过引擎接口创建文件了。

分享一下使用方法:

1、对话框使用 electron 的对话框,具体方法可以查看 electron 的官方API
2、引擎创建文件和保存文件接口,向 asset-db 包发送 create-assetsave-asset 消息

插件里有导入按钮啊,没看到吗?

版本升级v1.1.0, 为了支持 C3D 1.2.0版本,这也应该是在引擎合并前最后一个版本了,希望引擎合并后改动会小点,另外下架之前做的版著快船插件,因为版权网站更新了新系统,支持除IE浏览器之外的浏览器了。

sendToMain “protobuf-creator:open” failed, no response received.
现在2.4.3版本里面会报错,打不开界面

好的,我下个你用的这个版本,给我留个邮箱,我调测完直接发你邮箱

邮箱:chenghuai11yuan@sina.com

收到,这就处理,稍等一下啊。抱歉我的Discord链接失效了,我以为是永久的,回头我更新一下。

邮件已发出,注意查收

点击执行后生成的文件放到哪里去了

第一步执行导入库文件时选择的路径下

不行生成不出来,正在执行就没下文了

Failed to create asset db:/\assets\scripts\network\protobuf+pbmsg.js, messages: Error: Invalid path: null
看下这是什么问题

你是windows系统吗?

2.4.3能用么

可以的,之前有个朋友就是用的2.4.3

选择完protobufjs库存放目录后出现这个错误

你加我的Discord,我们连线看看,我在线等你啊

Cocos 3.0 Preview的版本我已经适配好了,但是在商店无法提交上去,之前购买过的朋友如果有需要可以联系我,我直接发您。

我之前的插件包里就已经支持了C3D1.2,原本以为会很好适配Cocos 3.0,不过还是有一点写法上不严格导致原来的包无法适配到Cocos 3.0上。

支持3.0的版本已经可以从商店下载了,不过只能通过编辑器里的商店,浏览器访问是看不到的。