返回

ETProto

Proto来源

https://github.com/protocolbuffers/protobuf/releases/tag/v3.6.1官方Git地址除了源码还有Protoc工具供下载

官方protobuf所有都在,如果后面更新了版本,只需要更改后的v.几版本

在文件夹根目录的Src文件夹中可以看到Google.Protobuf

ET的Protobuf由于要用于ILRuntime,所以经过了一轮精简,移除了不常用的功能并加入了跨域继承适配器(貌似连Protoc工具都改了)

ETProtobuf地址:https://github.com/egametang/protobuf3-for-Unity-and-ILRuntime

VS Proto高亮插件:https://marketplace.visualstudio.com/items?itemName=AProtobuf.ALittleAProtobuf&ssr=false#overview

(这个插件的格式化代码功能会删除备注,这将导致ET的C#类编译失败,高亮还可以用)

Proto相关文件的生成

  1. Unity编辑器脚本Proto2CSEditor,执行该脚本是会调用ProcessHelper.Run("dotnet", "Proto2CS.dll", "../Proto/", true);运行ET根目录下Proto文件夹中的Proto2CS.dll程序集,该程序集由Proto2CS项目生成

    • Proto2CS项目

      该项目在ET项目根目录下的Tools文件夹中

      该项目程序集生成位置在ET项目根目录下的Proto文件夹中

  2. 运行程序集时会调用Program.Main方法

  3. 方法调用protoc.exe工具在Unity的工程文件中生成OuterMessage.proto/HotfixMessage.proto两个文件的C#代码OuterMessage.cs/HotfixMessage.cs。注意,这两个C#代码在服务端相应文件夹中有引用。

  4. 方法调用InnerProto2CS.Proto2CS();读取InnerMessage.proto文件,并在服务端目录下手动写入对应消息类和消息操作码类。

  5. 调用Proto2CS方法读取OuterMessage.proto/HotfixMessage.proto文件,并分别在Model域和Hotfix域手动写入对应消息类和消息操作码类

Licensed under CC BY-NC-SA 4.0
0