zoukankan      html  css  js  c++  java
  • 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个不同文件夹,所以还是得复制粘贴,暂时没想到怎么一键发布,不需要再复制粘贴到指定文件夹。

  • 相关阅读:
    《时间的朋友》2017跨年演讲:观后感
    如何实现目标?
    不患贫而患不均
    科学地定目标(附我的目标)
    书单:我的“基本书”
    你只有非常努力,才能看起来毫不费力
    买书?买知识?
    论知识与技能
    【读书笔记】《代码不朽》
    【工作实践】如何创新?
  • 原文地址:https://www.cnblogs.com/gamedaybyday/p/12716984.html
Copyright © 2011-2022 走看看