首先在这里感谢昨天在公众号留言的网友蓝小野,感谢他提醒我的pbkiller插件在 Cocos Creator 2.0上不能正常工作的问题。
感谢蓝小野的反馈
pbkiller插件与《当creator遇上protobufjs》系列文章是开启我创作Cocos Creator教程的起点,可是之前有好长一段时间因为自己状态不佳,pbkiller插件都没有去更新维护。就连Cocos Creator 2.0这样的重大版本,我都没有即时给予pbkiller用户支持,在这里说声抱歉!再次感谢蓝小野同学的反馈提醒、感谢王楠的邀请参与Cocos商店建设、感谢Jare、感谢关注「奎特星球」的朋友,有你们的支持我才能走到现在。
下面介绍一下pbkiller新版本的内容:
1. 支持Cocos Creator 2.0pbkiller这次升级最重要的就是支持Cocos Creator 2.0,在升级过程中发现Cocos Creator 2.0 在资源管理上有了新的变化。其中一个变化是文本资源在Cocos Creator 2.0 构建打包后不以原始物理形态输出,而以转换成了Cocos Creator的uuid文件名json格式的文件,看下面内容:
{
"__type__": "cc.TextAsset",
"_name": "ChatMsg",
"text": "syntax = \"proto3\";\npackage grace.proto.msg;\nimport \"Player.proto\"...
}
其中的text字段就是proto文件的内容。
2. 兼容浏览器、原生、微信小游戏对不少人来说protobuf的使用并不困难,阻碍大家在Cocos Creator中使用protobuf的难点是对不同平台环境的兼容问题。比如说在开发调试期间是正常的,发布到微信小游戏上就出问题了;或者在原生上是正常的,但H5环境下又不对了。经常是这类问题把大家的时间、精力给消耗掉了,不能很好的集中精力去创作游戏内容。
新版本的pbkiller任然坚持在Native、H5、微信小游戏三大环境的一至兼容性,同时保持向下兼容,目前测试环境如下:
版本平台 | Native | 浏览器 | 微信小游戏 |
---|---|---|---|
1.8.2 | ok | ok | ok |
1.9.3 | ok | ok | ok |
2.0-rc1 | ok | ok | ok |
为了解决模拟器、原生环境、微信小游戏的加载、兼容问题(protobufjs库使用了nodejs中的模块、微信小游戏不能使用XMLHttpRequest)。新版pbkiller要求在Native、微信小游戏中预先加载proto文件,预先加载主要是使用Cocos Creator提供的cc.loader接口去加载proto文件到内存,这样方便抹平不同平台的文件读取问题。然后就可以使用pbkiller封装的protobufjs以同步方式编译proto文件,一起看下面预加载用法:
//预先加载
pbkiller.preload(() => {
//编译proto文件
let pb = pbkiller.loadAll();
//实例化proto对象
let player = new pb.Player()
});
同时还要需要注意,在Cocos Creator构建时如果需要使用MD5 Cache选项时,代码中也必须使用预先加载方式,不然会因为找不到文件而报错。
4. 结语
我猜很多人都想知道像pbkiller这类的插件的销量如何,是否考虑过自己也做一个插件能帮助大家,同时能挣得一份认可和回报。
在这里向大家透露下pbkiller的销量情况,从2018年8月30开始开买第一单到2018年7月31截至卖出113份,而且7月31日竟然出售了4份。在这里感谢这112个pbkiller用户(其中有一份是我自己购买的),感谢有你们的支持让我再战Cocos Creator 2.0!
从上面的数据看pbkiller的销量其实是比较惨淡的,但每次看到能帮助大家解决问题,心里还是很高兴,主要是自己不善经营没怎么打理。如果你对自己有信心,能从帮助他人找到快乐,同时也能提升自己,一起来吧!让游戏的世界因你而更加精彩。