按照protobufjs的教程引入 在creator2.4.6版本一切正常,但是在creator 3.4中一直报错
先按照教程安装了本地和全局的protobufjs
creator 2.4.6正常,但是creator3.4 控制台报错如下
proto 文件

转为js文件和ts文件引入过后,在测试场景中导入
![]()
在测试场景中点击按钮进行消息创建
![]()
对creator不是很熟,求解答
按照protobufjs的教程引入 在creator2.4.6版本一切正常,但是在creator 3.4中一直报错
先按照教程安装了本地和全局的protobufjs
creator 2.4.6正常,但是creator3.4 控制台报错如下
proto 文件

转为js文件和ts文件引入过后,在测试场景中导入
![]()
在测试场景中点击按钮进行消息创建
![]()
对creator不是很熟,求解答
// .js 文件结构
/eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars/
“use strict”;
var $protobuf = protobuf;
// Common aliases
const $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
// Exported root namespace
const $root = $protobuf.roots.creator3 || ($protobuf.roots.creator3 = $util.global);
const mypb = $root.mypb = (() => {
…
})();
//////////////////////////////////////////////////////////////////////////
// .ts 文件结构
declare global {
/** Namespace mypb. */
export namespace mypb {
}
}
export { mypb as default };
按以上格式把导出的proto.js文件开头和结尾改一下就好了。
3.x里面使用方式和2.x不一样
这个就是需要把import注释掉 import了就会报错
![]()
使用代码
控制台打印
![]()
感谢大佬的耐心解答,这样我这边就成功了。但是我个人感觉,这样用起来岂不是很不方便,每次生成出来的文件都得手动去改似乎有些麻烦了
写个脚本一键生成修改
那看来在creator 3.x中使用protobufjs,是只有写些脚本来填坑了
都是写脚本转换的, 本身生成这两个文件就需要执行命令行,执行完成后通过脚本做一些修改再使用就好了。
报错里面不是注写清楚了,得加后缀 awesome.js
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。