当前位置: 首页 > article >正文

UE4_用户控件_1_滑块控制图像颜色的变化

祝愿大美兰陵越来越好,祝愿祖国繁荣昌盛,祝愿人民幸福安康!

一、样式展示:

效果,当角色靠近物体(只有一个胶囊碰撞体)时显示用户控件,调整控件中的滑块值,可以改变UE4logo的颜色,同时滑块的数值可以在滑块后面显示。

二、制作步骤:

1、新建一个触发Actor,更名为BP_EventTrigger。

添加Capsule Collision。

修改胶囊体半高和半径都为156

BP_EventTrigger事件图表中添加“事件Actor开始重叠”事件。

添加一个布尔变量display,编译,设置默认值为true。

2、新建个角色类,用于行走,不含骨骼网格体。

3、新建个GameMode,并把默认pawn类设置为新建角色BP_My_Character。

4、世界场景设置,选择上面的gamemode。

5、让角色具有行动能力

因为我们创建的角色不具备控制行走的事件,同时添加一个变量HUDActive控制是否具有行动能力。

这儿的事件还是使用的第三人称角色中的输入:

删除场景中默认的角色,测试下:

现在能够正常控制角色了。

6、新建个拥有退出按钮的用户控件UMG_Exit,事件开始运行创建

设置按钮的锚点和位置,如下图:

在按钮上添加个文字Exit,修改颜色为黑色,效果如下图:

角色中事件开始运行的时候把它加上去,并在角色中添加用户控件变量,把值赋予它:

7、角色中还需要加一个BP_EventTrigger类型的变量。

特别是当好几个BP_EventTrigger类型的实例触发它的话,这个变量是用于决定哪个实例触发的它。

8、角色中还得添加一个用户控件类的引用的变量

好知道我要创建的用户控件到底是哪一个?

这个值也是从BP_EventTrigger蓝图类中得到的。

9、编辑下BP_EventTrigger蓝图类,当重叠的时候,我们把自己传递给角色的变量。

 新建一个布尔变量Isactive,用于判断是否被激活,

默认是没激活的,当没被激活的时候,我们需要把要显示的控件类传递给角色的变量affectUMG

10、同时还得设置一个变量值赋予角色的affectUMG变量,新建个公开的变量赋值与它

11、现在用户控件还没有,我们没办法给公开的变量affectUM赋值,来新建个用户控件,更名为UMG_Sliders

拖拽个图像作为背景。

在拖拽个画布面板,放一些滚动条

画布的锚点位置下方居中

位置大小调整:

放个滑块上去,修改锚点如图:

大小位置如上图,参数如下图:

再赋值2个,如图:

给滑块加文本:

再加个图像,放logo

这个图像如何去掉黑白?新建个材质作为图像。

我们直接把材质赋予图像就可以了。这个材质是用作用户界面的。至此我们要显示的控件制作完成。

12、把刚做的控件赋值给公开的变量affectUM。

先把这个actor拖拽到场景中

13、角色中把它显示出来,角色中添加自定义事件showUMG,用于显示控件。

添加自定义事件,创建用户控件实例

这就是为什么我们需要的变量类型为用户控件的类引用,把变量AffectUMG赋予它:

我们设置下输入模式为设置仅输入模式UI,set input Mode UI Only:

添加到视口add to Viewport:

14、先测试下效果:

没有触发成功,原因是什么呢?是因为我们还没有在BP_EventTrigger的重叠事件中“事件Actor开始重叠”中让角色显示控件。

运行效果如图:

15、继续完善showUMG事件,让UMG_Exit添加到视口

效果:

因为用户控件已添加,所以我们要把变量HUDActive设置为true

16、为角色添加HideUMG自定义事件

当退出按钮被我们单击时调用。

添加点击时事件,我们需要运行角色的HideUMG事件,当然我们得需要角色先有HideUMG自定义事件,首先把显示控件添加的用户控件都给删除。

设置HUDActive变量为false,

再把UMG_Exit移除

17、为UMG_Exit控件中的Exit退出按钮添加单击时事件

测试下:

发现没有鼠标,也就是只要用户控件被创建并添加到视口就得显示鼠标

当退出时就不显示鼠标,鼠标是由玩家控制器控制的

发现当退出的时候,无法控制角色。

18、添加单击退出按钮退出菜单时让角色恢复控制权

运行测试无问题。

这里的控制权和鼠标显示与否的问题,可以把自定义事件写在玩家控制器里面,当用户控件被创建时,调用玩家控制器中的事件,让鼠标显示,设置输入模式仅UI,当单击退出按钮时,调用玩家控制器中的另一个事件让鼠标隐藏和设置仅输入模式游戏。

19、如何让滑块的数据和图像颜色相关联

双击UMG_Sliders用户控件,在每一个滑块的后面添加一个文本框

把文本内容删掉,添加绑定

拖动对应滑块,获取其值,

另外两个类似操作就可以了。

因为滑块和图像是处于同一个用户控件中的,我可以直接把颜色绑定成函数:

我们需要线性颜色

线性颜色的分量来自于三个滑块的值:

由于滑块位置放错了,修改下连接线

来看下运行效果:


http://www.kler.cn/a/443463.html

相关文章:

  • Django:构建高效Web应用的强大框架
  • 【C++面向对象——类的多态性与虚函数】编写教学游戏:认识动物(头歌实践教学平台习题)【合集】
  • 用户界面软件01
  • DeepSeek重新定义“Open“AI
  • 前端(十二)jquery(2)
  • SUB输入5V升压充电16.8V芯片HU5912
  • FFmpeg 主要结构体剖析
  • YOLOv9-0.1部分代码阅读笔记-callbacks.py
  • 新质生产力8大产业链
  • 使用k6进行Redis基准测试
  • VMware ubuntu虚拟机网络配置
  • leecode1049.最后一块石头的重量||
  • 如何在 Spring Boot 应用程序中使用 WireMock 模拟外部 rest api 调用进行测试
  • 沙县小吃点餐系统|Java|SSM|JSP|
  • 深度学习实战之超分辨率算法(tensorflow)——ESPCN
  • 【C#】WebSoket 演示(使用websocket-sharp库)
  • 【FFmpeg 教程 一】截图
  • aws(学习笔记第十八课) 使用aws cdk(python)进行部署
  • WebPlotDigitizer 使用指南
  • 【Linux网络编程】第十二弹---构建与优化HTTP请求处理:从HttpRequest到HttpServer的实战
  • 信息安全概论
  • Web应用中的XSS防护实践
  • 位运算符说明
  • LWIP协议:三次握手和四次挥手、TCP/IP模型
  • 解释工厂模式
  • uniapp 将base64字符串保存为图片、Word、Excel、音频、视频等文件