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

news2025/1/12 7:33:28

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

一、样式展示:

效果,当角色靠近物体(只有一个胶囊碰撞体)时显示用户控件,调整控件中的滑块值,可以改变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.coloradmin.cn/o/2264724.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络编程 02:IP 地址,IP 地址的作用、分类,通过 Java 实现 IP 地址的信息获取

一、概述 记录时间 [2024-12-18] 前置文章:网络编程 01:计算机网络概述,网络的作用,网络通信的要素,以及网络通信协议与分层模型 本文讲述网络编程相关知识——IP 地址,包括 IP 地址的作用、分类&#xff…

【pycharm】远程服务器之后如何打开终端

【pycharm】远程服务器之后如何打开终端 在pycharm中,我们通过远程连接服务器,此时如果我们需要在终端运行的话,并不能直接在本地终端运行,而是需要连接到服务器终端才能运行命令 设置如下: 输入服务器的ip、端口、…

C#+OpenCv深度学习开发(常用模型汇总)

在使用 OpenCvSharp 结合深度学习进行机器视觉开发时,有许多现成的模型可以使用。以下是一些常用的深度学习模型,适用于不同的机器视觉任务,包括物体检测、图像分类和分割等。 使用示例 在 OpenCvSharp 中加载和使用这些模型的基本示例&…

dolphinscheduler服务注册中心源码解析(三)RPC提供者服务整合注册中心注册服务实现源码

RPC提供者服务整合注册中心注册服务实现源码 1.概述2.源码解读思路3.实现2.1.应用服务的RPC服务接口定义2.1.1.MasterServer应用中提供的RPC接口服务2.1.2.WorkerServer应用中提供的RPC接口服务2.2.应用服务的RPC服务接口实现2.2.1.MasterServer应用中提供的RPC接口服务实现类2…

重生之我在异世界学编程之C语言:数据在内存中的存储篇(上)

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 目录 引言正文一、数据类型介绍1.内置类型2.自定义…

线程的概念及基本应用

目录 线程的概念 Java中多线程应用 继承Thread类 实现Runnable接口 实现Callable接口 线程的生命周期 线程的基本操作及原理 Thread.join的使用及原理 Thread.sleep的作用 问题 Thread.sleep的工作流程 wait和notify的使用 wait notify 例子 生产者消费者模式 Th…

联通软研院:基于OceanBase落地检索增强生成 (RAG) 的应用实践

本文作者:邱永刚,联通软件研究院OceanBase研发负责人,主要负责中国联通自研关系型数据库分布式CUDB研发、支撑、运维工作。 近年来,生成式人工智能技术取得了飞速进步,很多大模型在自然语言处理及对话系统领域的运用吸…

【更新】LLM Interview

课程链接:BV1o217YeELo 文章目录 LLM基础相关1. LLMs概述2. 大语言模型尺寸3. LLMs的优势与劣势4. 常见的大模型分类5. 目前主流的LLMs开源模型体系有哪些(Prefix Decoder,Causal Decoder,Encoder-Decoder的区别是什么&#xff09…

模型 课题分离

系列文章 分享 模型,了解更多👉 模型_思维模型目录。明确自我与他人责任。 1 课题分离的应用 1.1课题分离在心理治疗中的应用案例:李晓的故事 李晓,一位28岁的软件工程师,在北京打拼。他面临着工作、家庭和感情的多重…

sqlite 自定以脚本解释器

应用程序使用 libfdt 解析设备树,获取兼容性配置 内核源码支持libfdt 标准设备树语法,不用自己再创造 非常的爽,因为设备树支持预编译 一些可以跑类 BSD 系统的设备也可以使用这样的方法,不仅仅是在linux 系统上跑 有pylibfdt 支持解析设备树,校验设备树是否是正确的…

某医院vsan部署技术手册

环境配置 服务器4900G5五台 配置信息:cpu 8368*2颗 ,内存256GB ,双口万兆网卡两个,四口千兆,RAID卡LSI9361-8i12G SAS RAID ,两块固态盘480SSD ,2*1.92TB NVME盘,5*8T盘。 万兆交换机两台H3C…

【编辑器扩展】打开持久化路径/缓存路径/DataPath/StreamingAssetsPath文件夹

代码 [MenuItem("Assets/Open Explorer/PersistentDataPath")]public static void OpenPersistentDataPath(){Application.OpenURL(Application.persistentDataPath);}[MenuItem("Assets/Open Explorer/DataPath")]public static void OpenDataPath(){Appl…

【day14】异常处理与Object类深入解析

【day13】回顾 在深入探讨异常处理与Object类之前,让我们回顾一下【day13】中的关键内容: 权限修饰符: public:最广的访问范围,任何地方都可以访问。protected:在同包和子类中可以访问。默认(无…

【NLP 17、NLP的基础——分词】

我始终相信,世间所有的安排都有它的道理;失之东隅,收之桑榆 —— 24.12.20 一、中文分词的介绍 1.为什么讲分词? ① 分词是一个被长期研究的任务,通过了解分词算法的发展,可以看到NLP的研究历程 ② 分词…

11.vector的介绍及模拟实现

1.vector的介绍 记得之前我们用C语言实现过顺序表,vector本质上也是顺序表,一个能够动态增长的数组。 vector 的底层实现机制 - 动态数组:vector 的底层实现是动态数组。它在内存中连续存储元素,就像一个可以自动调整大小的数…

# 起步专用 - 哔哩哔哩全模块超还原设计!(内含接口文档、数据库设计)

↑ 上方下载文档 (大小374KB) 接口文档预览 (超过50个接口) 一、数据库25张表er-关系清晰构图!(tip: 鼠标右键图片 > 放大图像) 二、难点/经验 详细说明 热门评论排序评论点赞列表|DTO封装经验分享|精华接口文档说明 组员都说喜欢分档对应枚举码 如果这篇文章…

android RecyclerView 垂直显示示例(java)

RecyclerView垂直列表显示示例&#xff0c;显示图片加文字。 1、RecyclerView.Adapter适配器 public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> {private Context mContext;private List<TitleBean> titleBeans;public ListAdapt…

华为云语音交互SIS的使用案例(文字转语音-详细教程)

文章目录 题记一 、语音交互服务&#xff08;Speech Interaction Service&#xff0c;简称SIS&#xff09;二、功能介绍1、实时语音识别2、一句话识别3、录音文件识别4、语音合成 三、约束与限制四、使用1、API2、SDK 五、项目集成1、引入pom依赖2、初始化 Client1&#xff09;…

GitCode 光引计划投稿|智能制造一体化低代码平台 Skyeye云

随着智能制造行业的快速发展&#xff0c;企业对全面、高效的管理解决方案的需求日益迫切。然而&#xff0c;传统的开发模式往往依赖于特定的硬件平台&#xff0c;且开发过程繁琐、成本高。为了打破这一瓶颈&#xff0c;Skyeye云应运而生&#xff0c;它采用先进的低代码开发模式…

网络刷卡器的功能和使用场景

网络刷卡器是一种连接互联网的设备&#xff0c;能够通过网络将读取到的各种卡片信息传输至服务器进行处理。这类刷卡器通常支持多种类型的卡片&#xff0c;如银行卡、身份证、会员卡、公交卡等&#xff0c;并运用现代信息技术确保数据的安全性和高效性&#xff0c;功能十分强大…