说一下版本,如果和你使用的版本不同的话,不保证有效。
.proto文件的写法使用的是protobuf2,不是protobuf3,也不是用了syntax=2的protobuf3。
白鹭引擎版本5.0.13
protobufjs版本6.7.0
------------------------------------------------------------------
先说明一下,我自己之前也在网上翻了不少相关的帖子,几乎所有的都是使用“把.proto文件当成资源动态加载进来,然后解析使用”的方法,但是这个方法有2个不好的地方。
1、解析需要消耗运行时的时间
2、最重要的,写代码的时候没有自动完成。
然后我发现了现在版本的protobufjs有提供命令行工具可以把proto文件转为d.ts文件和js文件的,也就是说其实是可以像其他语言那样,编译成静态的代码来使用的。
第一步:
安装nodejs(因为protobufjs的使用需要nodejs)
然后去protobufjs的官网
dcode.io/protobuf.js
按照说明,在命令行工具里为nodejs安装protobufjs,安装完后就可以在命令行中使用pbjs和pbts2个指令了。
第二步:
准备好你的.proto文件,比如common.proto,battle.proto。
使用命令
pbjs -t