protobufjs 使用的是5.0.3的版本,之所以使用这个版本是因为微信和QQ小游戏屏蔽了Function 动态执行代码,所以为了兼容所有平台使用的5.0.3.
cocos creator 3.x 的使用
1.先去网站下https://github.com/protobufjs/protobuf.js/tree/ProtoBuf5 包,因为我用npm 安装指定版本安装不上,所有就直接去下的模块包,我下载的是压缩包,解压出来后把文件夹的名称改为protobufjs,移动到项目的node_modules文件夹下就可以了.
2.安装nodejs bytebuffer包,在项目目录下命令行执行 npm install bytebuffer
3.将node_modules文件下bytebuffer包里的package.json的"main": “dist/bytebuffer-node.js"改为"dist/bytebuffer.js”
4.需要重启一下项目,不知道为啥修改main对应值没有立即生效,感觉有可能是缓存导致的.
如何在项目中使用在测试项目里protobufjs-5.0-3.x.rar (1.0 MB)
cocos creator 2.4的使用
1.先去网站下https://github.com/protobufjs/protobuf.js/tree/ProtoBuf5 包,因为我用npm 安装指定版本安装不上,所有就直接去下的模块包,我下载的是压缩包,解压出来后把文件夹的名称改为protobufjs,移动到项目的node_modules文件夹下就可以了.
2.安装nodejs bytebuffer包,在项目目录下命令行执行 npm install bytebuffer
3.找到protobuf.js 路径为 你的项目/node_modules/protobufjs/dist/protobuf 拷贝到你的项目assets目录下
4.找到bytebuffer.js 路径为 你的项目/node_modules/bytebuffer/dist/bytebuffer拷贝到你的项目assets目录下
5.找到long.js 路径为 你的项目/node_modules/long/dist/long 拷贝到你的项目assets目录下
6.修改protobuf.js文件 将
require(“bytebuffer”) 改为require("./bytebuffer"); 其实就是改为相对于protobuf.js文件的路径.
7.修改bytebuffer.js文件 将
require(“long”) 改为require("./long"); 其实就是改为相对于bytebuffer.js文件的路径.
8.注意不要做为插件导入.
如何在项目中使用在测试项目里protobufjs-5.0-2.4.rar (251.0 KB)
对于proto的动态加载要先加载所有的proto的资源以后才能使用
动态解析挺好就是没有proto对应消息的属性代码提示·所有我自己写了一个插件可以将proto的消息导出为ts接口,插件是3.8.1写的,得在插件根目录下执行一下命令行 npm install 安装一下依赖包
插件在这里proto-export-ts-interface.rar (165.1 KB)
ProtoBuf.Long.fromValue(obj) 直接改为