UMG简单的拖放控制

用蓝图实现的简单的基于UMG的拖放操作,可以用于实现物品栏。

1.在允许拖动的窗口重载以下函数 On Mouse Button Down:并且开启拖放检测,拖放检测会在鼠标按下过程中一直持续。


2.在允许拖动的窗口重载以下函数 On Drag Detected :当拖放检测被触发,创建DragDropOperation,其参数Payload用于传递数据,

DefaultDragVisual 是一个UWidget 是拖放的可视表现,以下是创建了一个图标窗口。


3.在允许Drop操作的窗口重载OnDrop函数,实现放下操作


4.要把允许DragDrop操作的窗口的Root 设置其Visibility参数为Visible,(默认为SelfHitTestInvisible).这样才能接收拖放事件。


拖放显示的图标窗口,可以通过DragDropOpration对象来引用。

### 实现按键控制UMG UI元素可见性的方法 在 Unreal Engine 的 UMG 中,可以通过蓝图实现按键控制 UI 元素的可见性。具体来说,可以设置 UI 元素的状态为 `Collapsed` 或 `Visible` 来分别表示隐藏和显示[^1]。 以下是具体的实现方式: #### 设置UI元素的初始状态 在 UMG 编辑器中,选中目标 UI 元素,在 **Widget Settings** 下找到 **Visibility** 属性。将其默认值设为 `Collapsed`(如果希望一开始不可见),或者 `Visible`(如果希望一开始就可见)。这一步决定了该控件启动时的初始状态[^1]。 #### 创建输入绑定 进入项目中的 **Input** 设置页面,定义一个新的自定义动作映射(Action Mapping),例如命名为 `"ToggleUI"` 并为其分配一个键盘快捷键(如 F 键)[^4]。 #### 使用蓝图逻辑切换可见性 打开对应的蓝图文件(通常是 Level Blueprint 或 Widget Blueprint),并执行以下操作: 1. 添加事件节点 `Event Input Action Released ToggleUI`,用于检测指定按键释放的动作。 2. 将此事件连接到一个条件分支节点 `Branch` 上。 3. 在 True 和 False 分支下各放置一个函数调用节点 `Set Visibility`,分别传入参数 `ESlateVisibility::Visible` 和 `ESlateVisibility::Collapsed`[^1]。 下面是一个完整的蓝图代码示例,展示如何动态改变某个按钮组件的可见属性: ```blueprint // Event Graph Logic for Toggling Button's Visibility via Key Press Event Input Action Released ToggleUI -> Branch (Condition: IsButtonCurrentlyVisible?) |-> If True: Call SetVisibility(ESlateVisibility::Collapsed) on Target Widget |-> Else: Call SetVisibility(ESlateVisibility::Visible) on Target Widget ``` 为了优化性能考虑,当某些区域内的多个子项均处于不可点击又无需渲染的情况下,建议统一调整父容器的整体 visibility 至 collapsed;而对于仅需禁用手势反馈但仍保留视觉呈现的部分,则单独修改 hit-testable flag 即可达到目的[^3]。 最后提醒一点关于材质索引的应用场景——假如涉及到复杂图形界面定制化需求的话,可能还需要借助额外资源比如纹理贴图等等配合完成最终效果设计工作[^5]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值