Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程

本人有Unity基础,刚学UE几天,把这一套处理流程记录一下备用。
文章很长,强烈建议点目录跳着看。

0.目标效果

用户输入两个字符串,点击等号,在右侧的文本框中输出拼接在一起的字符串
在这里插入图片描述

1.创建一个空关卡

Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第1张图片

2.新建UI蓝图

Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第2张图片
双击打开,然后拖一个画布面板到场景中
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第3张图片
拖动右下角光标到1920*1080
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第4张图片
然后拖入一个水平框,调整锚点到中间
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第5张图片
调整大小尺寸Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第6张图片
依次拖入文本框(用户可以输入内容),文本(显示文字),文本框,按钮,文本。然后再按钮下再拖入一个文本。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第7张图片
现在层级面板是这个样子
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第8张图片

把水平框的五个部件都改成尺寸:填充,1.0
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第9张图片
设置居中和调整字号
其中对于文本框,调整字号
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第10张图片
调整颜色为黑色(记得把四个“继承”的勾都取消掉,才能生效)
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第11张图片

给两个文本框改名为输入1,输入2。把文本改名为输出。Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第12张图片同时给输出打钩:是变量Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第13张图片改名后的层级是这个样子Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第14张图片依次点击(从左到右)编译,保存。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第15张图片

3.在游戏场景中展示UI蓝图

最小化UI蓝图,在一片黑的空白关卡。打开关卡蓝图。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第16张图片右键,添加“获取玩家控制器”节点Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第17张图片
从获取玩家控制的返回后面拉出,设置show mouse cursor。UE会自动隐藏鼠标,设置后鼠标就会一直显示,方便我们操作UI。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第18张图片
从事件开始运行节点拉出来接上,鼠标一直显示就设置完成了。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第19张图片
在SET后拖一个创建控件
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第20张图片
然后选择我们刚做的UI蓝图,然后拉一个添加到视口功能。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第21张图片
完成连接
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第22张图片

编译保存蓝图,最小化。然后主关卡界面点运行。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第23张图片
可以看到我们做的UI了
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第24张图片

4.连接UI事件到关卡

回到UI的蓝图,点击图表
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第25张图片
在左侧变量选中按钮
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第26张图片
在右侧添加点击时事件
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第27张图片
拖入输入1,输入2,输出。都选择获取。
在这里插入图片描述
点击加号添加一个事件分发器,我改名叫提交输入。添加两个字符串参数,叫输入1,输入2。
对蓝图编译,保存。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第28张图片
拖入事件分发器,选择调用。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第29张图片
输入1,输入2后拉出获取文本
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第30张图片
获取文本后再拉出转换为字符串
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第31张图片
然后连接到事件调用,看到下面这个样子,对UI蓝图编译保存。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第32张图片
按住蓝图的标签拖动可以分出窗口和合并窗口。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第33张图片
将关卡蓝图与UI蓝图分为两个窗口
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第34张图片
按住UI蓝图里的事件分发器,拖入关卡蓝图。选择分配Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第35张图片
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第36张图片
将创建视窗的Retrun Value连到绑定时间的目标上
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第37张图片
将绑定事件连接到添加视口后,这样就可以在关卡开始时完成绑定。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第38张图片

然后我在提交输入后接了两个打印字符串,验证这步做的是否正确。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第39张图片
编译保存蓝图,运行程序,输入提交可以看到这样的效果:
左上角成功输出文本框的内容。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第40张图片

5.连接关卡事件到Actor

在资源文件夹中右键新建一个蓝图类
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第41张图片父类选择Actor
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第42张图片
我命名为拼接字符串Actor
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第43张图片
双击进入Actor的蓝图,在左侧添加组件。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第44张图片
选新建C++组件
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第45张图片
父类选Actor组件
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第46张图片
我叫它JoinStringComponent。在这里插入图片描述
VisualStudio全部重新加载,然后UE得living code自动编译成功
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第47张图片
在.h文件 pulic 构造函数下面添加代码:

	UFUNCTION(BlueprintCallable)//可以显示在蓝图中
		FString EnableFunc(FString s1, FString s2);

Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第48张图片
在.cpp文件下面写函数:

FString UJoinStringComponent::EnableFunc(FString s1, FString s2) {
	FString s3 = s1 + s2;
	return s3;
}

Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第49张图片

最小化visual studio
点击右下角编译,保存
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第50张图片
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第51张图片
这时就可以给Actor添加我们写的C++组件了
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第52张图片
将Actor编译保存
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第53张图片
然后点击事件图表
在这里插入图片描述
从左侧拖入JoinString组件
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第54张图片
然后就可以拉入我们写的C++函数。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第55张图片
新建一个事件处理器,拼接字符串Actor接收输入,参数也是两个字符串输入1输入2。拖入事件选择分配。然后按照下面的样子完成蓝图。编译,保存。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第56张图片
拖入完成的Actor到场景
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第57张图片
层级是这样的
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第58张图片
细节是这样的
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第59张图片
打开关卡蓝图,脱出一个新的窗口。然后把大纲面板中的拼接字符串Actor拖入关卡蓝图中成为一个节点。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第60张图片
把Actor蓝图创建的事件分发器拖入关卡蓝图,选择绑定
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第61张图片
之前拖入的Actor节点作为事件调用的目标,然后完成下面的连接。编译保存。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第62张图片
运行结果
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第63张图片

6.连接Actor事件到UI

打开拼接字符串Actor的蓝图,新建一个事件分发器,只有一个字符串参数叫输出。拖入蓝图,选择调用。替换掉之前的输出字符串并连接。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第64张图片
打开UI的蓝图,添加一个变量,类型选择拼接字符串Actor
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第65张图片

设置这个变量为可编辑实例√和生成时公开√
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第66张图片编译保存,重新打开关卡蓝图。下面就多出了这个端口。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第67张图片
连接上,编译保存。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第68张图片

把新创建的事件分发器拖入UI的蓝图,选择分配。Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第69张图片
从输入(就是UI的那个输出标签)拉出设置文本。

将UI蓝图中的拼接字符串Actor与事件的对象连接。在把事件绑定等等都按照下图连接好。
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第70张图片
编译保存,运行项目,完成了目标效果。

Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第71张图片Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第72张图片

7.完成后的三个蓝图,仅作参考

关卡蓝图
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第73张图片
UI蓝图
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第74张图片
拼接字符串Actor蓝图
Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程_第75张图片

你可能感兴趣的:(虚幻,ui,交互,c++)