最近遇到一个需求,还是很奇葩的。要求运行时根据给定的信息生成二维码并显示在 UMG 上。需求奇葩是奇葩,但是也不能不做呀,又不能砍死产品经理(赶紧跑)。。。。。。。。
思路和解决方案整理阶段
于是开始绞尽脑汁的想,但是我没写过呀。肿么办???莫慌,有两种思路:
- 类似于草料二维码这种,能否将信息发送给网页,然后拿到网页生成的图片再传回给 UE4 。思路倒是可以,但是有两个问题:
- 草料二维码有没有提供这种功能不确定,即使提供了还需要用户联网,但我们的应用并不需要一定联网呀,最关键的是我不会(哈哈哈哈哈哈,手动狗头);
- 即使能从草料那边拿到最终生成的二维码图片,如何在运行时动态在 UMG 上显示,也没搞过,突然发现自己好菜菜菜菜。。。。
- 利用插件,看看有没有现成可以用的插件,遂转到虚幻商城,一搜,果然有。
最便宜的也有 50 多块钱呢,但是公司又不给报销,突然发现自己好穷。。。。。穷的原因是菜,越菜越穷,越穷越菜(手动狗头)。所以只能找上全球最大的同性交友网站(github)【手动好几个狗头】上找一找了。果然找到了。链接 。
思路和解决方案完毕进入正题
来看看作者给出的步骤,足够精简。
虽然足够精炼,也言简意赅,但是对于没有基础不强的人来说还是如同天书一般的存在,所以我们接下来一步一步慢慢来,免得扯着X,嗯。
1. 让现有工程变成 C++ 工程:
如果您的工程已经是 C++ 工程,可以略过此步。点击 File>New C++ Class ,随便选择一个父类创建即可。这样纯蓝图工程就能变为 C++ 工程。
2. 将下载的插件拷贝到工程目录下 Plugins 中
按照提示将插件拷贝到 Plugins 目录中,重启 UE4 Editor ,激活插件并重启。
重启后提示缺少 dll 。莫慌
可以点击 “是”,但是于事无补,所以点 “否” 相信我。不信你就试试。
3. 重新生成插件库
uproject 上右击 “Generate Visual Studio Project Files” 提示错误。
莫急,有解决方案的,要不然我也不会在这里 BB 半天。
打开 .sln 文件,在 Build.cs 中添加 QRCode 依赖库,之后点击生成。
笔者使用的 4.22.3 版本中提示错误,其他版本没测试。感觉这个玩意就是和我过不去。。。。。。
打开 QRCode.Build.cs,注释掉 66 行
再重新生成,发现正常了。
4. 使用插件
重启 UE4 Editor,要想生成 QRCode,需要 QRCode 组件,所以我们为 ThirdPersonCharacter 添加该组件并进行测试。测试节点连接如下。
其中有几个需要注意的地方:
- 此处我们创建的 UMG 只是在视图中心显示一张简单的图片,用于显示二维码;
- 添加了 QRCode 组件并借助组件创建 Generate QRCode 节点;
- 最终设置 UMG 图片的时候,记得勾选 “Match Size” 否则扫描不出来。
最终运行效果如下图所示