创建相关蓝图
-
新建蓝图,在下方搜索
DragDropOperation
,这个蓝图主要用来存放拖动信息,以及枚举,同样用来存放可能出现的拖放控件信息这里我创建了两个变量、一个函数
-
新建相关UI
右键->用户界面->控件蓝图
这里我分别创建了:
- 需要拖动的UI:W_遗迹大门个
- 用于接受拖动控件的UI:W_遗迹大门插槽
- 以及主UI:W_遗迹大门关卡
相关设计器内容如下:
编辑相关函数
需要拖动的控件蓝图
对于需要拖动的控件蓝图,需要重载两类函数:鼠标按钮按下、检测到拖动
鼠标按钮按下函数这里,只需要设置什么按键
检测拖动函数,需要设置拖动的蓝图类,也就是最开始创建的DragDropOperation
蓝图,这里的Default Drag Visual
就是拖动时,鼠标上显示的内容,Pivot
是指鼠标上显示的内容在鼠标光标的什么位置,图块信息表示当时拖动的是哪一个控件
接受拖动的控件蓝图
现在来编写按照示例中用来识别拖动的插槽蓝图
同样重载当落下时
的函数,内容如下
通过cast to BP_DragWidget
接受上一步选择的枚举信息,并根据信息替换插槽的图片,最后调用一次事件分发器中的WhenDrop
主UI的控件蓝图
示例中需要判断当前拖动控件是否按照正确顺序放入插槽,因此有如下内容
将接受拖动的控件绑定前一步中出现的事件分发器WhenDrop
,意思是,每当接受拖动的控件调用该函数时,就会执行当前在UI中的自定义事件
总结
如果只是简单的拖放操作,重点在重载相关的三个函数
内容到这里就结束了,如果有疑问可以在下方评论
的自定义事件