cocosCreator中Protobuf的简单使用

您好,参照您给的教程在creator成功了,但是发布安卓还有windows平台的时候,报了有一堆错误。之前没有把protobuf.js设置为插件。设置插件之后,报了更多错误,但是能正确运行出结果。请问楼主解决这个问题了吗。

解决了,设置为插件的时候一定要勾选‘允许编辑器加载’

收藏学习了!!!!

你好,我按照步骤操作的,把生成的js转为
程序中报找不到


这个是怎么回事呢?我勾选了,准许编辑器编译

马克一下

我导出的proto js 文件比较大,编辑器提示我导入为插件,需要把它导入为插件吗? 我的是typeScript工程

需要哇 要不然你用不了哈

测试了,协议文件导出的proto.js 不能导入为插件,导入插件之后, 你的 ts 下的文件引用模块的时候,编辑器会报错,无法找到模块。

不知道是不是 用的问题
我这里 的 合并后的协议.js 文件是 导入为插件的
然后代码里直接就可以用了
集成按照 https://github.com/dcodeIO/protobuf.js 这个仓库提供的方案来的
不过自己做了一些修改

https://upload-images.jianshu.io/upload_images/2625556-e751d0da6bd41827.jpeg?imageMogr2/auto-orient/strip|imageView2/2/w/1240

大锅我也遇到几个问题想请教一哈,你没有发现你截图中encode后的protobuf,byteLength:8192 = 8kb,这么一丢丢数据8kb是不是太耗流量了?
还有protobuf预编译生成js文件超级大!!!几个.proto文件生成到一个js,代码行数轻松破万,js文件大小动不动就几百kb,打开js一看每个类里都有大量诸如encode() decode()等方法。如果是开发微信小游戏,代码部分大小限制,这就很…

1赞

对啊,导出的js很大,只能压缩一下。会小很多。

压缩下用mini版本的 应该还好吧

优秀,学习了

最完整总结
https://blog.csdn.net/NRatel/article/details/84251138

请问怎样压缩呢?我倒出的也很大

请问怎样压缩呢?

可以参考我写的这个工具
https://forum.cocos.com/t/cocoscreator-protobuf/73569

1赞

mark一下

在调试matchvs的demo时,里面的protobuf在浏览器上正常,但发布到微信小游戏就报错了。不知道是什么问题,好奇怪。Cannot read property ‘dcodeIO’ of undefined
TypeError: Cannot read property ‘dcodeIO’ of undefined
at http://127.0.0.1:28959/game/src/assets/common/script/basic/rankNetwork/ProtoBuf.js:6:47
at http://127.0.0.1:28959/game/src/assets/common/script/basic/rankNetwork/ProtoBuf.js:7:3
at require (http://127.0.0.1:28959/game/dev/WAGame.js:2:96033)

=========================
mstType.js

“use strict”;
cc._RF.push(module, ‘57b2cIfIk5HLYmy1eO/Sp4Y’, ‘msgType’);
// common/script/basic/rankNetwork/msgType.js

“use strict”;

var protocol = dcodeIO.ProtoBuf.newBuilder({
“populateAccessors”: true
})[‘import’]({
“package”: “protocol”,
“syntax”: “proto2”,

================================
Protobuf.js

/**

  • @license long.js © 2013 Daniel Wirtz dcode@dcode.io

  • Released under the Apache License, Version 2.0

  • see: https://github.com/dcodeIO/long.js for details
    */
    (function(global, factory) {

    console.log(“global-1:”,global);

    (global[“dcodeIO”] = global[“dcodeIO”] || {})[“Long”] = factory();

    console.log(“global-2:”,global);

    /* AMD / if (typeof define === ‘function’ && define[“amd”])
    define([], factory);
    /
    CommonJS / else if (typeof requireJS === ‘function’ && typeof module === “object” && module && module[“exports”])
    module[“exports”] = factory();
    /
    Global */ else
    (global[“dcodeIO”] = global[“dcodeIO”] || {})[“Long”] = factory();

})(this, function() {

学习了,大佬