SimpleProtobuf
文档 下载 评论(25)

老版本使用方法 新版本请看 视频1-0 

一.环境部署
1.先打开GenerateProtobuf.bat 里面有如下的内容:
start %~dp0Content\Engine\Binaries\Win64\ProtobufProgram.exe -CompressPath=%~dp0Content\google.rz -OutPutProtobufPath=G:\DigitalHuman\Source\DigitalHuman
将 -OutPutProtobufPath=的内容指向自己的工程源目录.点击生成

2.在项目的build.cs下加入如下内容:
ShadowVariableWarningLevel = WarningLevel.Off;

bEnableUndefinedIdentifierWarnings = false;
if (Target.Platform == UnrealTargetPlatform.Win64)
{
bEnableExceptions = true;
}

PublicDefinitions.Add(“_CRT_SECURE_NO_WARNINGS”);
PublicDefinitions.Add(“GOOGLE_PROTOBUF_NO_RTTI=1”);
PublicDefinitions.Add(“GOOGLE_PROTOBUF_CMAKE_BUILD”);

3.编译,直到成功

二.生成prot代码
1.打开GenerateProtobufCPP.bat 这个文件
%~dp0Content\Engine\Binaries\Win64\protoc.exe –cpp_out=G:/DigitalHuman/Source/DigitalHuman/REF/ ./CPPScript/TestCPPProto.proto
将里面的–cpp-out=设置你自己写的proto里面 ./xxxx这个是指定你自己写的.proto
–cpp_out=你想生成的cpp位置 ./你定义的proto位置

2.点击运行即可生成对应代码。
3.proto的位置目前是相对位置,绝对位置会出错,如果希望指定一个公共的位置,可以拷贝content里面的protoc.exe到自己公共的位置即可

三.CPPScript
这里有赠送方便测试的.proto文件,可以移动到自己工程方便测试,生成代码,以及运行。

旧版本使用方法

哈喽,大家好,我叫人宅,这里为大家手把手演示SimpleProtobuf的使用方法。
这个插件目前作为引擎插件,直接放在引擎插件下即可:

添加图片注释,不超过 140 字(可选)
SimpleproTobuf的使用只需要二步骤:
1.安装库
2.build.cs下写代码
一 安装库
1.第一步先从插件内部找到如下的批处理,找到“-OutPutProtobufPath=”代码。

添加图片注释,不超过 140 字(可选)
把后面的路径改成自己项目的路径:
我们以MMOARPG这个目录为例:

添加图片注释,不超过 140 字(可选)
做如下更改,保存关闭后,双击运行即可。

添加图片注释,不超过 140 字(可选)
这时候它会生成在项目目录中。
如果以后希望用独立程序,那么这个路径就设置为独立程序的路径即可:

添加图片注释,不超过 140 字(可选)

第二步:build.cs下写代码
生成好后,编译项目代码一定会编译出错,这个时候来到build.cs下面,加入如下代码
ShadowVariableWarningLevel = WarningLevel.Off; bEnableUndefinedIdentifierWarnings = false; if(Target.Platform == UnrealTargetPlatform.Win64) { bEnableExceptions = true; } PublicDefinitions.Add(“_CRT_SECURE_NO_WARNINGS”);

添加图片注释,不超过 140 字(可选)
此时再编译就可以正常编译了。
但是如果还是不行,说明你的目录不是Public或者私有的目录,那如何解决呢?

添加图片注释,不超过 140 字(可选)
然后加入以下路径

添加图片注释,不超过 140 字(可选)
这种方法容易被刷新给覆盖。

如何使用呢?
这里面有个例子:

添加图片注释,不超过 140 字(可选)
里面是proto的基础语法

添加图片注释,不超过 140 字(可选)
我们就把这个代码生成C++,那应该如何操作呢?
打开这个批处理 将红框的路径替换成自己的路径:

添加图片注释,不超过 140 字(可选)
我们还是以这个路径为例

添加图片注释,不超过 140 字(可选)
替换后如下

添加图片注释,不超过 140 字(可选)
双击后生成这个文件:

添加图片注释,不超过 140 字(可选)
如果定义Prot的结构建议写在 CPPScript里面

添加图片注释,不超过 140 字(可选)

旧版本文档版本文档:
哈喽大家好,我叫人宅,很高兴和大家一起来介绍一下我们的插件。
这个插件目前可以商用了~~~
在插件里面做了如上的更改。
现在我们可以不用以来编辑器帮我们生成对应的反射cpp文件,直接可以通过配置几个参数来实现该功能。

1首先配置GenerateProtobuf.bat文件,首先用记事本打开
注意OutPutprotobufPath这个,需要配置你想要哪个项目生成Protobuf,这个我以独立程序为例,配置好后,点击即可生成。
下面是我们是生成的内容:
%~dp0Content\Engine\Binaries\Win64\protoc.exe –cpp_out=../SimpleProtobuf/ ./CPPScript/TestCPProto.proto
pause

2.配置GenerateProtobufCPP.bat文件,首先用记事本打开
这里面展示了一个案例,这个案例就在插件CPPScript里面。
我们写好了一个脚本:
点击可以帮我们生成对应的反射cpp.
%~dp0Content\Engine\Binaries\Win64\protoc.exe –cpp_out=../SimpleProtobuf/ ./CPPScript/TestCPProto.proto

3.配置你的build.cs,这个配置是生成google的那个文件里面
ShadowVariableWarningLevel = WarningLevel.Off;
bEnableUndefinedIdentifierWarnings = false;
if (Target.Platform == UnrealTargetPlatform.Win64)
{
bEnableExceptions = true;
}
 
PublicDefinitions.Add(“_CRT_SECURE_NO_WARNINGS”);

旧版本文档:
哈喽,大家好,我叫人宅,这节为大家带来一套Protobuf的传输协议UE版本。
这里我用UE4来演示它的使用方法.
我们可以通过配置.proto位置 和生成cpp的位置来在编辑器动态生成我们的.h和cc协议文件
 
1.首先来到人宅学院 下载 SimpleProtobuf
 
2.创建一个第一人称的项目 TestProtobuf
 
3.把SimpleProtobuf插件放在下面的位置
 
4.鼠标右键刷新
 
5.用代码启动编辑器
启动后可以看到一个图标,这个图标可以帮助我们编译.proto文件,同样我们也可以通过以下方式找到编译按钮。
 
现在我们准备.proto文件
 
此时工程会生成一个proto文件位置,只需要把它写在里面即可:
写入如上的信息然后点击如下编译按钮
 
会打印如下内容,其中std是protobuf正常输出的内容,err是编译出错输出的内容,目前来看是成功的,点击确定,我们来看看它生成的内容
它实际生成在了项目的Source里面
如下:
我们在传输中经常会用到protobuf
 
如果需要自定义.proto文件的位置或者 重新定义 输出的cpp可以在projectsetting里面修改下面的内容:
ProtoFiles :指向.proto文件的位置;
OutCPPPath:指向生成的cpp位置;
注意,该插件目前只能在独立程序里面运行,在项目里面是无法运行生成好的protobuf文件,原因是因为ubt的编译方式和编译独立程序稍有不同。

《“SimpleProtobuf”》 有 25 条评论

  1. tiany说道:

    协议生成后重新生成项目,报下面的错误是什么原因啊
    LNK2019 无法解析的外部符号 “public: virtual __cdecl google::protobuf::Closure::~Closure(void)” (??1Closure@protobuf@google@@UEAA@XZ),函数 “public: virtual void * __cdecl google::protobuf::Closure::`scalar deleting destructor'(unsigned int)” (??_GClosure@protobuf@google@@UEAAPEAXI@Z) 中引用了该符号

  2. radial说道:

    准备资料可以私发一份吗? 我想对着教学视频复现一下

    • 人宅回复人宅说道:

      是什么准备资料,你的意思是插件的protobuf资源。稍等一下我会把它放出来。
      资源地址下载 :https://ue4plugins.oss-cn-beijing.aliyuncs.com/ThirdParty/Protobuf/Protobuf.zip

  3. radial说道:

    哦哦,问题已经解决了,感谢

  4. qixiaoyang666说道:

    这个能支持linux端吗

  5. junfff说道:

    CompilerResultsLog: ld.lld: error: undefined symbol: PlayerStateHello::FStructObject23::FStructObject23()
    CompilerResultsLog: >>> referenced by LoginSubsystem.cpp:21 (/home/ljf/Documents/UnrealProjects/ue5_heroworld/heroworld/Source/heroworld/Level/Login/Systems/LoginSubsystem.cpp:21)
    CompilerResultsLog: >>> /home/ljf/Documents/UnrealProjects/ue5_heroworld/heroworld/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/heroworld/LoginSubsystem.cpp.o:(ULoginSubsystem::LoginBtn(FString, FString))
    CompilerResultsLog: ld.lld: error: undefined symbol: PlayerStateHello::FStructObject23::~FStructObject23()
    CompilerResultsLog: >>> referenced by LoginSubsystem.cpp:37 (/home/ljf/Documents/UnrealProjects/ue5_heroworld/heroworld/Source/heroworld/Level/Login/Systems/LoginSubsystem.cpp:37)
    CompilerResultsLog: >>> /home/ljf/Documents/UnrealProjects/ue5_heroworld/heroworld/Intermediate/Build/Linux/B4D820EA/UnrealEditor/Development/heroworld/LoginSubsystem.cpp.o:(ULoginSubsystem::LoginBtn(FString, FString))
    CompilerResultsLog: clang++: error: linker command failed with exit code 1 (use -v to see invocation)
    LogMainFrame: MainFrame: Module compiling took 14.062 seconds
    Warning: HotReload failed, recompile failed

    编译项目报错了,linux系统

  6. junfff说道:

    SimpleProtobuf UE5.00

  7. jason2yuan说道:

    UE4能用吗

  8. ZhangWanHong说道:

    ue5的插件没法用啊,

  9. finnie说道:

    protobuf里面的bin怎么没有啊

  10. finnie说道:

    这个插件有使用流程嘛?为什么我的没反应呢?

  11. 185887415说道:

    安装插件后,启动一直报错UDP messaging encountered an error. Auto repair routine started for 是什么原因?

  12. 739591799@qq.com说道:

    创建不了Robat文件夹:CPPScript/TestCPPProto.proto:80:9: “duration” is not defined.

发表回复

一.商业版本和学习版本的对比

二.您还未登陆哦

三.该资源出自以下课程

四.相关解决方案

付费版本包含源码,可以二次开发,如果您不需要二次开发,或者想先试用一下,那么我建议先用免费版本,有的免费版本需要登录。

如果免费版本蓝图无法启动,请点击我,里面有解决方案

如果有问题 请加入 售后QQ群:946331852 我们会收集问题,安排维护

如果有希望新增的功能也可以反应到售后,我们会安排添加,感谢理解。

五.社区版本(主要针对不需要登录本站的用户)

资源推荐

更多>>

.

奔溃报告服务器

人宅 8
¥free

.

自动化游戏测试Demo

人宅 20
¥free

.

自动化-实用工具

人宅 30
¥free

.

工具链合集

人宅 36
¥free

.

在线和离线虚拟人工程

人宅 124
¥free

.

无人直播-视频播放器

人宅 42
¥free

.

弹幕回复Client工具

人宅 33
¥free

.

UE与情绪识别

人宅 2
¥98.00

.

UE与百度翻译

人宅 2
¥98.00

.

UE通义千问

人宅 10
¥98.00

.

人工智能自动化安装

人宅 61
¥free

.

高效的本地ini配置

人宅 5
¥48.00

.

DH音频与口型同步

人宅 78
¥free

.

音频转口型服务器

人宅 66
¥free

.

UE5百度文心一言插件

人宅 34
¥98.00

.

UE与PaddleSpeech

人宅 45
¥198.00

.

UE与ChatGLM插件

人宅 33
¥98.00

.

UE与Stablediffusion

人宅 30
¥88.00

.

Bilibili直播插件

人宅 20
¥168.00

.

音频转口型客户端插件

人宅 68
¥198.00

.

UE ChatGPT

人宅 41
¥128.00

.

UE 阿里云智能语音

人宅 77
¥198.00

.

连招战斗插件

人宅 34
¥98.00

.

GAS技能扩展插件

人宅 36
¥98.00

.

DX12独立引擎

人宅 17
¥2980.00

.

对象浏览插件

人宅 69
¥29.00

.

SBL库

人宅 106
¥98.00

.

弹窗插件

人宅 82
¥28.00

.

数值升级伤害推演工具

人宅 88
¥188.00

.

智能热更新插件v2

人宅 251
¥198.00

.

UE高级动画插件

人宅 104
¥48.00

.

SimpleProtobuf

人宅 174
¥298.00

.

幻灯片插件

人宅 68
¥58.00

.

图片格式转UTexture2D

人宅 77
¥38.00

.

分布式服务器插件

人宅 262
¥396.00

.

视频播放器插件

人宅 136
¥98.00

.

RENZHAI版本Git小程序

人宅 119
¥28.00

.

屏幕移动操作插件

人宅 205
¥39.00

.

绘制攻击字体效果插件

人宅 182
¥29.00

.

UE4 zip压缩插件

人宅 282
¥38.00

.

Pak散包查看器

人宅 284
¥32.00

.

打pak和读pak插件

人宅 312
¥free

.

UE4Mysql数据库插件

人宅 245
¥98.00

.

智能热更新插件

人宅 291
¥free

.

UE4文件读取插件

人宅 326
¥8.00

.

UE5HTTP插件

人宅 364
¥48.00

.

UE5对象储存OSS插件

人宅 226
¥98.00

.

UE5多线程插件

人宅 290
¥88.00