拖拽丢弃
在上一篇文章里,咱们实现了一个简单的道具背包(Inventory)功能,玩家可以拾起掉落在地上的道具,然后显示在背包中。并且可以通过按钮事件来使用和丢弃道具,本篇咱们继续来优化这个背包功能,加上拖拽丢弃功能。
首先在开始之前,先来解决上一次功能的 bug,是我的锅就让我来背吧!
问题如下:
解决方案:
优化后的蓝图如下:
使用道具逻辑:
image
丢弃道具逻辑:
image
打开 UI_ItemCube 蓝图,点击 override 为其添加拖拽事件,如图:
image
为 ThumbNail 缩略图添加点击事件 On_Thumbnail_MouseButtonDown,如图:
image
接下来,我们来创建一个 Icon widget, 用于拖拽的时候显示附着于鼠标上显示,创建 Widget 这里就不再详细说了,不明白的可以看之前的教程,创建好的 widget 取名为 UI_ItemDrag,UI 设计如图:
image
添加变量 ThumbNail:
image
UI_ItemDrag 创建好之后,我们回到 UI_ItemCube 蓝图中,给 On_Thumbnail_MouseButtonDown 和 OnDragDetected 函数添加逻辑:
image
image
打开 UI_Inventory 蓝图,这里需要做一个优化;由于我们之前设计的背包 UI 没有覆盖整个屏幕,会导致我们拖拽的时候鼠标会获取不到当前的坐标信息,所以这里需要添加一个 Border 对象,来覆盖整个屏幕,并把背景色设置为透明,如图:
image
接下来实现 UI_Inventory 实现 OnDrop 函数,如图:
image
实现其蓝图逻辑:
image
保存,运行游戏效果:
image
本文分享自 HelloWorld杰少 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!