UE4官方Creating Drag and Drop UI遇到问题解决

针对Unreal Engine中拖拽UI组件的问题,本文介绍了一种有效的解决方案。通过将创建的DragWidget实例添加到HUD中,并手动触发构造函数,成功实现了官方教程中的拖拽效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

基于官方Creating Drag and Drop UI实现:https://docs.unrealengine.com/en-us/Engine/UMG/HowTo/DragAndDrop

创建四个类

DragWidget就是拖拽中UI,跟随鼠标光标移移动效果UI

HealthBar就是需要被拖拽血条,里面实现鼠标是否拖拽判断处理

HUD就是拖拽HealthBar到这主面板摆放地方,检测需要摆放位置

WidgetDrag存放DragWidget就是拖拽中UI,官方引擎提供接口

 如果按照官方教程步骤实现完,最终发现不能实现拖拽效果,具体不知道官方教程怎么实现拖拽;

问题点就是卡住官方下面例子:

断点查看HealthBar里OnDragDetected检测函数Create DragWidget Widget 节点确实创建了DragWidget 类,但是没有执行该类

DragWidget 的EventConstruct 构造函数事件通知,具体查看官方别人遇到类似问题解决办法:

https://answers.unrealengine.com/questions/715713/widget-events-arent-called.html

但是还不能解决问题。

本人的解决办法就是:官方创建DragWidget,其对象没有添加到屏幕窗口或其他控件(已经添加到屏幕窗口),HUD一开始添加到屏幕窗口,我们可以通过把创建DragWidget对象添加到HUD,最后运行DragWidget 的EventConstruct 构造函数开始执行通知了,最终实现官方拖拽效果。如下:

ThirdPersonCharacter声明变量CurHud存放HUD对象引用

HealthBar类里OnDragDetected函数里把创建了DragWidget添加到父类HUD对象CurHud,如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值