这个论坛创建主题真的事太简陋了,我只能码文字,跟大家说了
proto3
3.0和2.0不同,用之前网上找的那种三个js文件的protobufjs,解不出来,又看到一个介绍用node.js生成protobufjs的。
我就下载去了,发现安装好了以后(cd 到工程目录下,能看见asset文件夹…别去asset文件夹下,更别去asset下的什么scripts),发现没有一个loadproto方法,好像是叫这个吧。所以还是不行,下面介绍我的方法
1,安装node.js 的protobufjs
2,用cc.loader.load加载proto文件
3,再用protobufjs解析
上代码:
var url = cc.url.raw(“resources/proto/addressbook.proto”);
cc.loader.load(url,function(err,tex){
var protobuf = require(‘protobufjs’);
var pr = protobuf.parse(tex);
var Person = pr.root.lookup(“com.protobuf.Person”);
var PhoneNumber = pr.root.lookup(“com.blst.protobuf.Person.PhoneNumber”);
var phoneNum = PhoneNumber.create({number:“13811113369”});
var message = Person.create({
name: “names”,
id: 100001,
phones:[phoneNum]
});
var buffer = Person.encode(message).finish();
var message1 = Person.decode(buffer);
cc.log(" number = " + message1.phones[0].number);
});
下面是proto 内容
syntax = “proto3”;
package com.protobuf;
message Person {
string name = 1;
int32 id = 2;
string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
string number = 1;
PhoneType type = 2;
}
repeated PhoneNumber phones = 4;
}