虚幻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后面的技能选择蓝图,全部折叠成宏,命名为技能选择

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

添加如下

比较长,但有注释

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

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

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

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

相关推荐
寻丶幽风1 小时前
论文阅读笔记——双流网络
论文阅读·笔记·深度学习·视频理解·双流网络
君鼎1 小时前
C++设计模式——单例模式
c++·单例模式·设计模式
刚入门的大一新生2 小时前
C++初阶-string类的模拟实现与改进
开发语言·c++
小冯的编程学习之路3 小时前
【软件测试】:推荐一些接口与自动化测试学习练习网站(API测试与自动化学习全攻略)
c++·selenium·测试工具·jmeter·自动化·测试用例·postman
C++ 老炮儿的技术栈4 小时前
什么是函数重载?为什么 C 不支持函数重载,而 C++能支持函数重载?
c语言·开发语言·c++·qt·算法
猪八戒1.04 小时前
C++ 回调函数和Lambda表达式
c++
敲代码的 蜡笔小新5 小时前
【行为型之解释器模式】游戏开发实战——Unity动态公式解析与脚本系统的架构奥秘
unity·设计模式·游戏引擎·解释器模式
源远流长jerry5 小时前
匿名函数lambda、STL与正则表达式
c++
tan180°6 小时前
Linux进程信号处理(26)
linux·c++·vscode·后端·信号处理
一只鱼^_6 小时前
牛客练习赛138(首篇万字题解???)
数据结构·c++·算法·贪心算法·动态规划·广度优先·图搜索算法