参考

模块规范与示例 | Cocos Creator

示例:外部模块使用案例 | Cocos Creator

外部代码支持 | Cocos Creator

 

版本:cocoscreator3.8.2

 

一 使用模块形式

cocos中代码主要分成模块和插件两种,而cocos官方推荐模块代替插件使用。

按照cocos3.8的教程 示例:外部模块使用案例 | Cocos Creator ,来实现protobuf的使用,没有成功。

感觉教程,嗯... ...

 

二 使用插件形式

在项目目录/asset/libs/proto下保存protobufjs的文件,文件大小合计248kb。

image

 

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

image

 

代码中使用,cocos使用了模拟全局变量,所以可以用window、globalThis等来访问,MainScene.ts:

console.log(window.protobuf);

  

输出如下,表示插件使用成功

image

 

写一个测试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下。

image

 

代码中使用,发送一个用户信息,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);
    }

  

 

 

 

 

posted on 2025-08-18 18:26  gamedaybyday  阅读(77)  评论(0)    收藏  举报