参考
版本:cocoscreator3.8.2
一 使用模块形式
cocos中代码主要分成模块和插件两种,而cocos官方推荐模块代替插件使用。
按照cocos3.8的教程 示例:外部模块使用案例 | Cocos Creator ,来实现protobuf的使用,没有成功。
感觉教程,嗯... ...
二 使用插件形式
在项目目录/asset/libs/proto下保存protobufjs的文件,文件大小合计248kb。

cocoscreator编辑器中选择protobuf-library.min和protobuf-bundles.min两个文件,并勾选为插件。

代码中使用,cocos使用了模拟全局变量,所以可以用window、globalThis等来访问,MainScene.ts:
console.log(window.protobuf);
输出如下,表示插件使用成功

写一个测试proto文件,game.proto:
package game;
message UserInfo{
optional int32 id = 1; //用户id
optional string nickName = 2; //用户昵称
}
将game.proto导出成client_pb.d和client_pb.min,同样以插件形式放入cocos项目目录libs/proto下。

代码中使用,发送一个用户信息,MianScene.ts:
const sendData = new game.UserInfo();
sendData.id = 1;
sendData.nickName = "LiLi";
const sendByte: Uint8Array = game.UserInfo.encode(sendData).finish();
const ws = new WebSocket("ws://127.0.0.1:8080");
ws.send(sendByte);
接收一个用户信息,MainScene.ts:
private onMessage(event: MessageEvent) {
const useInfo: game.UserInfo = game.UserInfo.decode(new Uint8Array(event.data));
console.log('收到消息:', useInfo);
}
浙公网安备 33010602011771号