Laya中使用Protobuf


參考:

Laya-ProtoBuf  生成器環境搭建由Docker自動完成.

網絡和格式--ProtocolBuffer

【咸魚教程】protobuf在websocket通訊中的使用

egret官網提供工具

 

codeing源碼:

https://gamedaybyday.coding.net/p/LayaProtoBuf

 

在Laya的論壇社區和官方教程中沒有找到便利的方法。有個水友github發了個Docker自動生成的,但是沒有Egret的好用。

沒有指定版本的話,應該proto版本是2

 

一 運行npm安裝

在Laya項目文件夾下,右鍵選擇“在此處打開Powershell窗口”

 

 輸入以下命令

npm install protobufjs@6.8.4 -g
npm install @egret/protobuf -g

 

 

 

二 運行pb-egret add

運行pb-egret add 禁止運行

 

 

先運行一次下列命令,選擇Y

Set-ExecutionPolicy Unrestricted

 

 

然后再運行pb-egret add就可以了

pb-egret add

 

 

 

項目目錄下生成了protobuf文件夾

 

 

 

三 根據.proto文件生成庫文件

寫一個測試用.proto文件,放在protobuf/protofile文件夾下

 

 

 

 運行pb-egret generate

pb-egret generate

運行后再protobuf/bundles下生成了如下文件,這就是.proto文件生成的庫文件,可以當成第三方庫在Laya里使用

 

 修改項目protobuf文件夾下的pbconfig.json如下圖

 

 

 再次運行pb-egret generate,得到的文件變小了,不生成一些不使用的方法。

 

 

 四 Laya中使用庫文件

復制protobuf/library下的protobuf-library.min.js到項目bin/libs下

復制protobuf/library下的protobuf-library.d.ts到項目libs下

 

復制protobuf/bundles下的protobuf-bundles.min.js到項目bin/libs下

復制protobuf/bundles下的protobuf-bundles.d.ts到項目libs下

 

Laya的UI編輯器下,F9,勾選如下

 

庫的順序一定不能錯!!在bin/index.js里查看,要先加載protobuf-library.js,然后再加載protobuf-bundles.js,不然會報錯,找不到protobuf.roots初始化對象。

 

 

 

代碼中使用,確定template.login可以使用。socket發送可以自己調試下,我沒有服務器,沒調試過。

 

 

五  修改.proto文件后,如何更新

1. 按照上面的步驟4,從protobuf/bundles復制新的文件到bin/libs和libs目錄下

2.  修改protobuf/pbconfig.json里有個outputFile發布路徑。但是2個文件分別得放到bin/libs和libs  2個不同文件夾,所以還是得復制粘貼,暫時沒想到怎么一鍵發布,不需要再復制粘貼到指定文件夾。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM