目录

效果

步骤

一、显示框选效果

二、获取框选的物体

效果

步骤

一、显示框选效果

1. 新建一个游戏模式基础、HUD和控件蓝图,分别命名为“MyGameMode”、“MyHUD”、“WBP_Main”

2. 打开“MyHUD”,将控件蓝图“WBP_Main”添加到视口

3. 打开“WBP_Main”,重载函数“On Paint”

可以看到我们绘制框需要一个Brush

4. 在内容浏览器中新建一个“Slate笔刷”

这里命名为“MySlateBrush”

5. 回到“WBP_Main”中的重载函数“OnPaint”中,设置Brush为“MySlateBrush”

添加两个类型为向量2D类型的变量,这里分别命名为“StartPosition”、“EndPosition”,分别表示框选时的起始点和终点

将起始点作为绘制框的位置,用终点减去起始点就得到绘制框的尺寸,然后可以设置一下框选的颜色和不透明度。

接下来只需要设置一个绘制框的起始点和终点位置就行了。

在“WBP_Main”中,继续添加一个布尔类型的变量,这里命名为“CanDraw”,用于判断此时是否能够绘制框

在在“WBP_Main”的事件图表中,每帧判断此时是否能够Draw,如果可以Draw就设置框选的初始位置和终点

接下来需要在玩家控制器中设置只有当鼠标左键按下时才开始绘制。

6. 新建一个玩家控制器,这里命名为“MyPlayerController”

打开“MyPlayerController”,在事件开始时,获取到“MyHUD”的对象引用

当鼠标按下时能够绘制框选框,松开时设置无法绘制并执行自定义事件“Reset”

此时运行可以看到已经可以绘制出框选框了。

但是可以看到进行框选的时候,我们的Pawn也在进行旋转捯导致视角也在转动。

7. 新建Pawn,这里命名为“MyPawn”

打开“MyPawn”,添加一个摄像机组件

8. 将“MyPawn”拖入场景

在世界场景设置中设置默认pawn类为“MyPawn”

设置自动控制玩家

9. 在“MyPlayerController”的类默认值中勾选“显示鼠标光标”

此时运行就不会旋转玩家视角了

二、获取框选的物体

1. 新建一个Actor类蓝图,这里命名为“BP_Cube”

打开“BP_Cube”,添加一个立方体组件

2. 打开“MyHUD”,当事件接收绘制HUD时,不停的获取矩形框中的“BP_Cube”并打印其名称

此时看到框选到“BP_Cube”后就会打印其名称

如果想框选多种类型的物体,只需要将这些物体作为同一个父类的子类,然后设置“Class Filter”为父类即可。

参考视频:

https://www.bilibili.com/video/BV1Q54y1r7Kn/?spm_id_from=333.337.search-card.all.click&vd_source=36a3e35639c44bb339f59760641390a8