虚幻5|技能栏UI优化(2)——优化技能UI并实现技能栏的拖拽操作

这篇文章里,前情提要,文章里的序列变量应命名为序号,我命名错了,虽然不差,但为了后面更好的理解

一.刷新技能栏,用于刷新上一章文章的初始化技能栏

1.打开技能栏格子,打开图表,添加以下两个变量

并添加以下蓝图

还有一个蓝图要删掉,该图片把右侧的技能图标get有效变量删掉,我这里忘删了

2.打开技能UI

添加以下蓝图

添加一个函数,命名为刷新

打开刷新函数

二.

1.打开技能栏格子UI,打开图表,重载一个函数,按下鼠标按钮时函数

2.再创建一个重载函数,按下预览鼠标按钮时

上面就是鼠标选中的显示

3.再创建两个重载函数,用于拖拽,一个是放置时,另一个是发现拖动时

拖动之后要进行格子切换,要切换什么数据,就需要建立两个控件

三.第一个控件,是控件蓝图是UI,拖拽的技能格子

1.直接复制粘贴技能栏格子UI,粘贴后命名为拖拽的技能格子

2.打开后,删掉上面的文本块

3.打开图表,删除样式事件和变量,删成如下

4.创建纹理2D变量,并删除,创建过的鼠标和拖拽重载函数

四.创建一个蓝图,查找object的drag drop operation(拖拽操作),实现拖拽操作

1.创建后,命名为DragDrog

2.打开技能栏格子UI的图表,把下面三个变量复制粘贴到这个DragDrop,同时都设置为可编辑和公开

我下面的图片,没有设置成公开,是错的,要勾选

3.打开技能栏格子UI的图表,找到on drag detected,编辑如下

4.打开拖拽的技能格子UI的图表,把变量里的,图表2D,引用类型为纹理2D,设置成可编辑和公开

记得编译

5.再回到技能栏格子UI的图表,扎到重载的on drag detected刷新一下创建拖拽的技能格子控件蓝图

得到图标2D结点

链接如下

好的,运行测试拖拽技能图标

发现还是无法拖拽!

小编很快找到问题所在了

打开技能UI控件蓝图,打开初始化函数,找到这个位置,并链接红圈部分

我们可以把中断break部分给删除,但你才刚学不理解,可以先不删,以防后续错误

其余的技能格子也一样

接着,打开技能栏格子UI图表,事件图表,在事件构造,引用玩家类型

五.实现拖动的图标可以跟另一个图表更换位置,或者拖放在另一个空白格子

1.打开技能栏格子UI,打开图表,打开OnDrop重载函数

2.打开主角的角色蓝图,添加一个整型变量,命名为上一次技能序号,设置它的默认值为-1

-1代表的是没有任何技能被激活

3.打开技能栏格子UI,打开图表,在On drop里继续编辑

这里也是终于用到,最开始创建的刷新函数了

4.打开主角的角色蓝图,把IA_2后面的技能选择蓝图,全部折叠成宏,命名为技能选择

打开宏,删掉不激活的判断,连跟后面这条删了

添加如下

比较长,但有注释

按序号编写,编写完之后,看注释理解

复制粘贴上,自己多做的数字键,按输入数字键的多少对应技能序号

运行测试一下,小编是成功的

多设置几个,拖拉原位的技能图标放到其他格子里,进行检查,完成技能栏的拖拽操作

相关推荐
小赖同学啊6 分钟前
物联网中的Unity/Unreal引擎集成:数字孪生与可视化控制
物联网·unity·游戏引擎
??tobenewyorker6 分钟前
力扣打卡第二十一天 中后遍历+中前遍历 构造二叉树
数据结构·c++·算法·leetcode
future141227 分钟前
每日问题总结
经验分享·笔记
oioihoii1 小时前
C++11 forward_list 从基础到精通:原理、实践与性能优化
c++·性能优化·list
m0_687399841 小时前
写一个Ununtu C++ 程序,调用ffmpeg API, 来判断一个数字电影的视频文件mxf 是不是Jpeg2000?
开发语言·c++·ffmpeg
循环过三天2 小时前
3-1 PID算法改进(积分部分)
笔记·stm32·单片机·学习·算法·pid
Ronin3053 小时前
【C++】类型转换
开发语言·c++
之歆3 小时前
Python-封装和解构-set及操作-字典及操作-解析式生成器-内建函数迭代器-学习笔记
笔记·python·学习
mrbone113 小时前
Git-git worktree的使用
开发语言·c++·git·cmake·worktree·gitab
Zlzxzw3 小时前
使用unity创建项目,进行动画制作
unity·游戏引擎