23. UE5 RPG制作属性面板(一)

随着角色的属性越来越多,我们不能每次都进行showdebug abilitysystem进行查看,而且玩家也需要查看角色属性,所以需要一个查看玩家角色属性的面板。
在前面,我们创建三种类型的属性

  1. Primary Attributes(主要属性)可以进行加点,装备提供属性点等
  2. Secondary Attributes (次级属性)无法加点,基于主要属性或者其它次级属性设置值
  3. Vital Attributes (至关重要的属性)主要是血量和蓝量

我们制作的面板就需要将这三大块区分开来,主要属性增加加点按钮,次级属性只做显示,重要属性在显目的位置显示。

分析实现属性面板需要创建的Widget

考虑到属性框的复用性,尽可能重复使用资源。我们至少需要创建四个Widget用于展示

  1. 创建一个用于显示属性数值的Widget,我们命名为WBP_FramedValue
  2. 创建一个显示一行内容并能够显示属性名称和数值的Widget,命名为WBP_TextValueRow
  3. 创建一个可以先属性名称和数值,并可以添加点击按钮的Widget,命名为WBP_TextValueButtomRow
  4. 创建一个包含所有显示内容的Widget,命名为WBP_AttributeMenu
    接下来,我们将按照此步骤,一个个的进行创建。

在这里先提前说一下,创建的Widget都是通过之前制作的Widget基类创建的,如果第一次看的小伙伴,记得翻一下我之前的文章
在这里插入图片描述

创建WBP_FramedValue

先创建一个WBP,将面板调整成所需,按照内部需要调整大小
在这里插入图片描述
然后,添加一个尺寸框
在这里插入图片描述
将此设置为变量,设置高度和宽度重载,这样,我们可以实现通过参数修改它的大小
在这里插入图片描述
然后创建两个浮点参数,用于设置它的宽高,并连接蓝图,修改宽度和高度重载,参数别忘记设置默认值
在这里插入图片描述
我们可以选中这些节点,右键将其合并一个函数
在这里插入图片描述
重新命个名,就简洁了很多
在这里插入图片描述
添加一个覆层,这个覆层的作用主要是下面的UI可以在上面重复叠加,我们就可以将背景,按钮都叠加到上面。
在这里插入图片描述
在覆层下面添加一个Image,作为背景
在这里插入图片描述
背景设置为填充,这样,背景就可以填满整个覆层
在这里插入图片描述
图像默认颜色为白色,我们可以设置笔刷Brush来修改它的颜色,也可以修改颜色值,这里我添加了一个ui材质来修改背景颜色
在这里插入图片描述
考虑到后续有修改需求,我们设置使用蓝图去修改它的背景,我们可以在变量上面设置它的brush
在这里插入图片描述
背景添加完成以后,我们接着添加一个边框,接着在下面添加一个边框,同样的设置填充
在这里插入图片描述
在这里插入图片描述
边框直接设置了一张边框图片,然后设置为Border(边界,绘制为3x3边界,侧边和中部为空)
在这里插入图片描述
最后添加一个文本,用于显示内部的内容
在这里插入图片描述
设置文本对齐,修改字体,设置阴影等。
在这里插入图片描述
实现完成的效果如下
在这里插入图片描述

创建WBP_TextValueRow

和之前一样,先创建尺寸框,设置可以自定义尺寸
在这里插入图片描述
大小设置为所需,尺寸框宽度高度重载
在这里插入图片描述
增加两个变量,设置宽高,宽度设置为450,高度为60,用于显示属性名称和数值
在这里插入图片描述
添加一个水平框,用于承载文本 数值等,水平框默认是左右上下对齐的。
在这里插入图片描述
先添加一个文本
在这里插入图片描述
文本设置水平向左对齐,垂直居中对齐
在这里插入图片描述
显示效果如下
在这里插入图片描述
修改一下字体,大小,字间距,还有加了描边效果
在这里插入图片描述
文本修改完成,接着将前面制作的WBP_FramedValue 添加进来
在这里插入图片描述
修改尺寸为填充,水平对齐向右对齐,垂直居中对齐
在这里插入图片描述
效果如下
在这里插入图片描述
后面添加一个间隔区,用于和后面在主要属性哪里添加增加属性按钮隔开
在这里插入图片描述
设置一下间隔区的大小
在这里插入图片描述

接着添加一个命名的插槽,这个插槽可以在后面添加按钮使用
在这里插入图片描述
这个插槽会在制作后面的Widget的时候使用,最终效果如下
在这里插入图片描述

创建WBP_TextValueButtomRow

在创建WBP_TextValueButtomRow这里,我们不需要基于c++创建,而是基于上面的WBP_TextValueRow创建,然后在插槽里面添加一个按钮。
在这里插入图片描述
创建打开会显示WBP_TextValueRow的界面,左侧发现插槽给我们暴露了出来
在这里插入图片描述
思考了一下,按钮会经常使用,在不同的地方,我们可以考虑创建一个按钮的Widget,然后在相同的按钮我们只需要使用一套即可。
创建一个新的控件蓝图,命名为WBP_Button
在这里插入图片描述
老套路,先添加一个尺寸框,用来设置尺寸
在这里插入图片描述
屏幕尺寸修改为所需,高度宽度设置重载
在这里插入图片描述
接着编写蓝图增加两个变量去控制可以修改尺寸
在这里插入图片描述
在下面添加一个覆层
在这里插入图片描述

覆层下面添加一个图像,用于设置背景,这里默认的用于显示边框
在这里插入图片描述

修改它的图像,以及大小,设置对齐方式
在这里插入图片描述
增加一个蓝图,修改图像的笔刷,方便个性化定制,记得设置变量的默认值
在这里插入图片描述
接着添加一个按钮
在这里插入图片描述
设置对齐,在样式这里普通添加图像,主要是为了看效果
在这里插入图片描述

效果如下
在这里插入图片描述
接着,我们增加在蓝图可以设置按钮的样式,创建一个按钮样式节点,我们需要修改Normal Hovered Pressed Disabled四种情况下的样式。
在这里插入图片描述
将四个状态笔刷都设置为变量,可以通过变量设置默认值以及修改
在这里插入图片描述
我们需要在按钮上面显示图标,那么在按钮上添加一个文本
在这里插入图片描述
设置一下文本样式,游戏不需要修改的,要在属性上面设置
在这里插入图片描述
增加一个蓝图,修改文本
在这里插入图片描述
在蓝图增加一些变量对文本进行初始化
在这里插入图片描述
如果找不到系统默认的Robot的字体,需要开启显示引擎内容
在这里插入图片描述

记得把变量上的眼睛点开,我们才能够在蓝图对它的属性进行修改
在这里插入图片描述
记得将蓝图折叠成函数,这样更美观
在这里插入图片描述
到这里按钮的widget的样式就算做完了,我们打开WBP_TextValueButtomRow,在插槽下面添加一个覆层,然后在覆层下面添加一个制作的按钮
在这里插入图片描述
按钮的对齐设置一下,下面就可以看到我们之前设置的变量属性,可以直接修改。
在这里插入图片描述
最终,也实现了效果
在这里插入图片描述

创建WBP_AttributeMenu

我们将所需的Widget部件都创建完成了,接下来,要使用它们进行拼合,制作出来我们所需要的面板。

接着创建一个新的widget,命名为WBP_AttributeMenu
在这里插入图片描述
屏幕尺寸修改为所需
在这里插入图片描述
老套路,加个尺寸框
在这里插入图片描述
设置一下尺寸框的名称,修改一下宽高
在这里插入图片描述
在尺寸框下面添加一个覆层
在这里插入图片描述

在覆层下面添加一个图像,作为背景使用
在这里插入图片描述
设置一下背景
在这里插入图片描述
接着在覆层下面添加一个图像作为边框使用
在这里插入图片描述
样式为现在这样
在这里插入图片描述
添加一个包裹框,包裹住接下来添加的内容,包裹框的功能在于能够自动换行,我们就可以在包裹框内拼ui了。
在这里插入图片描述
包裹框设置一下填充属性
在这里插入图片描述
修改一下字体样式,注意设置一下填充空白空间,这样,它能够独占一整行,你再放置内容,将会从新的一行开始显示。
在这里插入图片描述
接着再添加一个文本,会发现和之前的文本重叠在了一块
在这里插入图片描述
我们可以修改它的填充跨度,来实现强制换行
在这里插入图片描述
修改样式
在这里插入图片描述
样式如下
在这里插入图片描述
我们可以在文本中间添加间隔区节点,增加两行文字的间距
在这里插入图片描述
x尺寸设置的大点,能够占用一行即可,y尺寸按个人喜好调整
在这里插入图片描述
接下来,添加一个WBP_TextValueRow,用于显示角色剩余可加点数
在这里插入图片描述
在这里插入图片描述
有点长,我们记得把WBP_TextValueRow里面变量的眼睛打开,就可以在menu页面调整它的大小了
在这里插入图片描述
修改一下,显示就合理了
在这里插入图片描述
接着在下面添加四个,并修改一下宽度,调整一下节点顺序
在这里插入图片描述
效果如下
在这里插入图片描述
接下来,我们需要创建次级属性显示,首先创建一个次级属性的标题,可以直接复制主要属性的节点
在这里插入图片描述
添加一个尺寸框,作为次级属性的父节点,由于次级属性比较多,我们可以让它滚动起来
在这里插入图片描述

设置大小,和填充空白空间,对齐方式,它就能够居中对齐了。
在这里插入图片描述
在尺寸框下面添加一个滚动框,如果内部内容超过了滚动框的尺寸,将能够滚动查看。
在这里插入图片描述
在滚动框下面添加10个WBP_TextValueRow用于显示次级属性
在这里插入图片描述
我们会发现右侧也会出现滚动条,效果或许不好,我们后续再调。
在这里插入图片描述

添加关闭按钮

直接在外部的overlay下面添加一个WBP_Button即可实现对按钮的添加
在这里插入图片描述
修改属性,对齐到右下角,填充一下右下,和边缘有些距离
在这里插入图片描述
效果如下
在这里插入图片描述

到这里,大概得UI创建的差不多,后面将创建一些不通用的UI和函数修改属性名称和数值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/482260.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

prettier + eslint 配置

vue-cli 新建项目选择 ESLint Prettier 会自动下载相关包 settings.json {"editor.formatOnSave": true, // 开启保存文件自动格式化代码"editor.defaultFormatter": "esbenp.prettier-vscode", // 默认的代码格式化工具// "prettier.r…

11 Games101 - 笔记 - 几何(曲线与曲面)

11 几何(曲线与曲面) 贝塞尔曲线 定义 贝塞尔曲线:由控制点和线段组成的曲线,控制点是可拖动的支点。 如图,蓝色为贝塞尔曲线,p1, p2, p3为控制点,曲线和初始与终止端点相切,并且…

数字乡村引领新风尚:科技赋能农村实现全面进步

随着信息技术的迅猛发展,数字乡村正成为引领农村全面进步的新风尚。科技作为推动农村发展的强大引擎,正在深刻改变着传统农业的生产方式、农村的社会结构以及农民的生活方式,为农村经济社会的全面进步注入了新的活力和动力。本文将从数字乡村…

【深度学习】四种天气分类 模版函数 从0到1手敲版本

引入该引入的库 import torch import torch.nn as nn import matplotlib.pyplot as plt import torch.nn.functional as F import torchvision import torch.optim as optim %matplotlib inline import os import shutil import glob os.environ["KMP_DUPLICATE_LIB_OK&q…

双指针算法:三数之和

文章目录 一、[题目链接&#xff1a;三数之和](https://leetcode.cn/problems/3sum/submissions/515727749/)二、思路讲解三、代码演示 先赞后看&#xff0c;养成习惯&#xff01;&#xff01;&#xff01;^ _ ^<3 ❤️ ❤️ ❤️ 码字不易&#xff0c;大家的支持就是我坚持…

马蹄集oj赛(双周赛第二十三次)

目录 数列分割 小码哥的地毯 小码哥的三色墙 palace 高数考试 新全排列 黑白双煞 等差 数三角形 区间修改 相对马高 小码哥剪绳子 数列分割 难度:黄金 时间限制:1秒巴 占用内存:64 M 小码哥给你一个长度为n的数列&#xff0c;求将该数列分割成两个左右两个部分且两…

大模型学习笔记七:LLM应用

文章目录 一、维护生产级别的LLM应用,需要做的事二、符合需求的LLM App维护平台三、LangFuse1)替换OpenAI客户端(把跟OpenAI交互记录到LangFuse)1.1)几个基本概念2)通过LangChain的回调函数触发记录(上面用的原生OpenAI接口,下面是调用LangChain的接口)3)构建一个实际…

打开snipaste软件的界面后,上次的截图无法销毁?

现象&#xff1a; 鼠标放上去&#xff0c;如图会有1个圆圈&#xff0c;无法消除一直显示在电脑桌面上&#xff0c;无法使图片消失 解决办法&#xff1a; 你应该是点到了空格&#xff0c;开启了编辑模式&#xff0c;然后又选中了其中一个功能例如橡皮檫导致无法移动和销毁&…

Linux线程补充1

十、多线程中线程间的"独立" ​ 1.线程在代码段通过执行不同的函数&#xff0c;实现代码段的独立&#xff1b; ​ 2.新线程通过在共享区划分不同的管理属性和不同的栈空间&#xff0c;实现栈的独立&#xff0c;而主线程使用的是栈空间&#xff1b; ​ 3.线程通过获…

计算机二级大题

题目来源&#xff1a;计算机二级Python半个月抱佛脚大法&#xff08;内呈上真题版&#xff09; - 知乎 1.大题1 注意csv文件读取的处理 ls[] for line in f: ls.append(line.strip(\n).split(,)) 2. 大题2 第一问&#xff1a; #计算有效票张数 fopen("vote.txt",…

微服务鉴权的几种实现方案

1.Token 1.1 Token透传&#xff08;不推荐&#xff09; 刚开始接触微服务时网上给的方案大都数是通过透传Token做鉴权&#xff0c;但我认为这种方式不是很妥当。接着往下看&#xff1a; 这种方式通过透传Token使得各微服务都能获取到当前登录人信息&#xff0c;在代码编写上确…

SCI一区 | Matlab实现WOA-TCN-BiGRU-Attention鲸鱼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测

SCI一区 | Matlab实现WOA-TCN-BiGRU-Attention鲸鱼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测 目录 SCI一区 | Matlab实现WOA-TCN-BiGRU-Attention鲸鱼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介绍模型描述程序…

面试算法-78-两两交换链表中的节点

题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4] 输出&#xff…

NLP 笔记:LDA(训练篇)

1 前言&#xff1a;吉布斯采样 吉布斯采样的基本思想是&#xff0c;通过迭代的方式&#xff0c;逐个维度地更新所有变量的状态 1.1 举例 收拾东西 假设我们现在有一个很乱的屋子&#xff0c;我们不知道东西应该放在哪里&#xff08;绝对位置&#xff09;&#xff0c;但知道哪…

汉字之美,拼音之韵

title: 汉字之美&#xff0c;拼音之韵 date: 2024/3/23 18:41:56 updated: 2024/3/23 18:41:56 tags: 汉字拼音文化语言美学传承中文 1. 汉字之美 汉字作为中文的书写形式&#xff0c;承载着丰富的文化内涵。每一个汉字都蕴含着历史、传统和智慧&#xff0c;是中华文明的瑰宝…

关于Java发邮件提醒写周报实现(一)环境搭建

背景 由于公司每周都要写周报&#xff0c;而日常工作很忙&#xff0c;所以很容易忘记这件事件&#xff0c;因此开发一个写周报提醒的机器人&#xff0c;进行特定时间提醒是时候写周报了。 有一个大前提&#xff0c;本技术实现&#xff0c;本着不开通任何收费服务的态度去考察使…

JetBrains CLion 2022 for Windows:C++开发者的强大助手,引领编程新风尚

在数字化浪潮席卷全球的今天&#xff0c;编程语言的多样性和复杂性日益凸显。而在众多编程语言中&#xff0c;C以其独特的优势和广泛的应用领域&#xff0c;成为众多开发者的首选。JetBrains CLion 2022&#xff0c;作为一款专为C开发者打造的集成开发环境&#xff08;IDE&…

深度学习(二)安装tensorflow深度学习框架

0.前言 速度更新新的一期&#xff0c;快夸奖我。前情提要这是我在window10系统下完成的操作&#xff0c;并不是ubuntu&#xff0c;所以有相应的区别。 1.安装tensorflow和d2l 这里默认大家已经安装好了anconda或者miniconda并且以及创建了虚拟环境。 conda create -n huahuaji…

Cesium安装部署运行

目录 1.简介 2.Cesium项目下载 3.Cesium项目运行 4.cesium运行 1.简介 Cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎。Cesium支持3D,2D,2.5D形式的地图展示&#xff0c;可以自行绘制图形&#xff0c;高亮区域&#xff0c;并提供良好的触摸支持&#xff0c;且支…

(一)基于IDEA的JAVA基础6

赋值运算符 int a10&#xff1b;是把10赋值给了变量a&#xff0c; 那这里有两组数值: int num11&#xff1b; int num22&#xff1b; 想把两个数值互关该怎么办呢&#xff0c; 理想状态我们直接num1num2&#xff1b;num2num1&#xff1b;看一下结果: 全变成了2&#xff0…
最新文章