【UE】框选功能
目录
效果
步骤
一、显示框选效果
二、获取框选的物体
效果
步骤
一、显示框选效果
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