中文
resource-icon
pb杀手 v1.3.0
类别
Creator扩展 插件
作者
张晓衡
Creator版本要求
v2.X所有版本
支持平台
AndroidiOSHTML5
评分
售价
¥ 6.00 (个人)

介绍

1.1.3升级说明

支持Cocos Creator 1.10 系列版本,移除fs.js、path.js无用文章

1.1.2升级说明

修正test-pbkiller测试场景在Cocos Creator 2.x上构建后加载proto文件报错问题

1.1.1升级说明

增加对Cocos Creator 1.10.x的兼容支持

1.1.0升级说明

  1. 增加对Cocos Creator 2.0的兼容支持
  2. 在原生和微信小游戏中需要先使用pbkiller.proload()函数回调完毕后才能调用pbkiller.loadXXX()加载protobuf文件
  3. 目前只在Cocos Creator 1.8.2、1.9.3、2.0-rc1版本的浏览器、原生、微信小游戏测试通过。 微信小游戏环境演示:http://v.youku.com/v_show/id_XMzMyNTQ3OTkxMg==.html pbkiller安装使用演示:http://v.youku.com/v_show/id_XMzA4MDU3Mjg0MA==.html pbkiller插件是为了在CocosCreator中简化protobufjs库的使用,并且可以让protobuffer工作在浏览器、jsb、微信小游戏环境上。

    pbkiller安装

    安装模式

    pbkiller插件有两种安装模式:
  • install-src:源码模式,此模式会将protobufjs原码导入项目中,不依赖任何外部文件。对npm不熟悉的用户推荐使用此模式安装。
  • install-lite:简化模式,此模式需要提前安装protobufjs npm模块,安装命令:npm install protobufjs@5 安装完成后,会导入如下文件:
  1. protobufjs源码(lite模式无此目录)
  2. pbkiller源码、及fs/path伪装模块
  3. 简单的测试场景和代码
  4. 测试proto文件 下面是导入文件和目录结构:
    pbkiller
    ├── protobuf    protobufjs源码
    │  ├── bytebuffer.js
    │  ├── long.js
    │  └── protobufjs.js
    ├── src        pbkiller源码
    │  ├── fs.js    fs伪装
    │  ├── path.js    path伪装
    │  └── pbkiller.js    pbkillers核心代码
    └── test
     ├── test-pbkiller.fire    测试场景
     └── test-pbkiller.js    测试组件代码
    resources            resource/pb是默认的proto文件存放的根目录
    └── pb                以下文件为测试用proto文件,可以自行删除
     ├── ActionCode.proto
     ├── ChatMsg.proto
     ├── Player.json
     └── Player.proto

快速使用

导入模块

let pbkiller = require('pbkiller');

加载resources/pb目录下所有proto文件

//先执行pbkiller.preload函数,异步返回后才能执行其它pbkiller操作
pbkiller.preload(() => {
  let pb = pbkiller.loadAll();
 cc.log(new pb.grace.proto.msg.Player()); 
})

加载resources/pb目录下所有proto文件

//加载所有proto文件
let pb = pbkiller.loadAll(); 
//实例化proto中的Player对象
let player = new pb.grace.proto.msg.Player();

指定文件格式:[proto|json] 默认为proto

//注意json文件是由protobufjs提供的pbjs工具生成
let pb = pbkiller.loadAll('json');

指定编译的对象路径

let pb = pbkiller.loadAll('proto', 'grace.proto.msg');
cc.log(new pb.Player());

特别注意

  1. proto文件必须放在resources目录下,默认路径为resources/pb。可以通过pbkiller.root修改子路径。
  2. 在加载proto时可以使用扩展名为**.proto和.json**的文件,pbkiller支持两种混用,但需要特别注意的如果有proto之间有依赖关系,请保证依赖文件之间是相同的文件格式。

用户评分

平均评分
(0)
共有 0 位用户参与评分

评论

canqinjia 2021-12-07 18:22

Illegal value for reconnectionvalue element of type int32: string (not an integer) new对象报错是什么原因

leonding 2021-11-25 19:12

执行例子 报下面的错误 TypeError: Cannot read property 'Player' of null test-pbkiller.js:34 at test_pbkiller.loadProto (eval at <anonymous> (http://localhost:7456/preview-scripts/__quick_compile__.js:238:32), <anonymous>:46:36) at test_pbkiller.onLoad (eval at <anonymous> (http://localhost:7456/preview-scripts/__quick_compile__.js:238:32), <anonymous>:27:10) at eval &#40;eval at createInvokeImpl (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:27772:55&#41;, <anonymous>:3:65) at CCClass._invoke (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:27776:11) at CCClass.invoke (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:27726:14) at CCClass.activateNode (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:39342:23) at cc_Scene._activate (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:20071:36) at 102.cc.Director.runSceneImmediate (http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:17686:15) at http://localhost:7456/app/editor/static/preview-templates/boot.js:345:29 at http://localhost:7456/app/engine/bin/cocos2d-js-for-preview.js:23879:13

作者

我在2.4.5中测试正常,可加我微信:z6346289

leonding 2021-11-25 18:18

pbkiller.js if (cccVer >= 2 || (cccVer >= 1.1 && cccVer &lt; 1.2) && ProtoBuf.preloaded) { builder.importRoot = this.root; } else { builder.importRoot = cc.url.raw(`resources/${this.root}`); } creator 2.x 会执行 builder.importRoot = this.root; 这样importRoot就不包含resources了

作者

加载pb文件使用的是cc.loader.loadxxx 系列的API,在 Creator 1.1之后 2.x 中,概系列函数默认加载的是resources目录下的文件

eric_linxin 2021-06-07 23:32

CocosCreator 2.2.1商店不能下载,找不到

作者

需要在Cocos Creator 2.4.0 引擎中打开商店下载

releax5 2020-12-21 17:52

请问如何单独加载和释放 bundle里的pb文件? 我们的子游戏作为一个bundle 有自己的pb文件。 多谢!

Elevenhlf 2020-12-20 12:31

有在CocosCreator扩展商店打开,还是标记为价格,无法下载

作者

你可以加我微信:z6346289,我刚测试过是正常的,你有用购买插件的帐号登录Cocos Creator吗?

Elevenhlf 2020-12-20 12:23

发我邮箱63120725@qq.com,谢谢

作者

感谢支持,在Cocos Creator打开扩展商店即可下载哦!

Elevenhlf 2020-12-20 12:22

CocosCreator 也下载不了

骋怀袁 2020-10-18 20:21

什么时候能支持TS

作者

在TS项目中也是可以用的

fuzhenkui 2020-10-05 23:10

秀儿,能不能支持下TS,不想看到JS

  • 1
  • 2

2020 © Cocos.com版权所有

增值电信业务经营许可证:闽B2-20160169

闽ICP备14002653号-6

闽公网安备 35020302033941号