ET 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相关文件的生成
-
Unity编辑器脚本
Proto2CSEditor
,执行该脚本是会调用ProcessHelper.Run("dotnet", "Proto2CS.dll", "../Proto/", true);
运行ET根目录下Proto
文件夹中的Proto2CS.dll
程序集,该程序集由Proto2CS
项目生成-
Proto2CS
项目该项目在ET项目根目录下的
Tools
文件夹中该项目程序集生成位置在ET项目根目录下的
Proto
文件夹中
-
-
运行程序集时会调用
Program.Main
方法 -
方法调用
protoc.exe
工具在Unity的工程文件中生成OuterMessage.proto/HotfixMessage.proto
两个文件的C#代码OuterMessage.cs/HotfixMessage.cs
。注意,这两个C#代码在服务端相应文件夹中有引用。 -
方法调用
InnerProto2CS.Proto2CS();
读取InnerMessage.proto
文件,并在服务端目录下手动写入对应消息类和消息操作码类。 -
调用
Proto2CS
方法读取OuterMessage.proto/HotfixMessage.proto
文件,并分别在Model域和Hotfix域手动写入对应消息类和消息操作码类
网友评论