UE4学习笔记 FPS游戏制作26 UE中的UI

文章目录

    • 几个概念
    • 创建一个UI蓝图
    • 添加UI
    • 获取UI的引用 切换设计器和UI蓝图
    • 将UI添加到游戏场景
    • 锚点
    • 轴点
    • slot
    • SizeToContent
    • 三种UI数据更新方式
      • 函数绑定
      • 属性绑定
      • 事件绑定
    • 九宫格分割图片

几个概念

UMG:UE的UI编辑器
slate UI: UE的UI的编辑语言

创建一个UI蓝图

右键用户界面/控件蓝图,选择UserWidget父类
在这里插入图片描述
在这里插入图片描述

添加UI

添加UI前先添加一个画布,拖进场景里或者拖进层级里均可

在这里插入图片描述

在这里插入图片描述
然后需要什么UI直接往场景里拖就可以,也可以拖到别的UI上成为子级UI
例如先拖一个按钮,再拖一个text到按钮上,这样text自动成为按钮的子物体
在这里插入图片描述

获取UI的引用 切换设计器和UI蓝图

选中一个UI,勾选右上角是变量
在这里插入图片描述
点击右上角切换到事件图表
在这里插入图片描述
在变量里就可以看到UI
在这里插入图片描述
注意变量的名字是这里的名字,而不是层级面板里的名字
在这里插入图片描述

将UI添加到游戏场景

在GameModel里,创建UI并添加到游戏
在这里插入图片描述

锚点

和Unity的锚点是一样的,锚点是可以直接拖得
在这里插入图片描述

在这里插入图片描述

轴点

和untiy的0.5,0.5不同,UE的轴点默认对齐是0,0,位置是UI的左上角
这是轴点为0,0,位置也为0,0的情况,可以看到UI的左上角和锚点对齐
在这里插入图片描述
我们把轴点改为0.5,0.5,位置仍然是0,0,现在可以看到UI的中心和锚点对齐
在这里插入图片描述

slot

我们创建的按钮的对齐方式里有一个插槽属性,后边显示为画布面板槽,这是因为它的父物体是画布,父物体不同,他们的插槽的可选内容是不同的
在这里插入图片描述
这是按钮下的一个text,它的slot是按钮槽,而不是画布槽
在这里插入图片描述

SizeToContent

勾选后尺寸属性失去作用,完全由填充图片或者子级文本长度来控制大小
在这里插入图片描述

三种UI数据更新方式

函数绑定

对于UI中可变更的部分,例如数值,文本,点击后边的绑定按钮,会自动在事件蓝图中创建一个函数,函数的返回值会自动更行到UI上,函数将每帧调用
在这里插入图片描述
例如这里调用了一个GethealthPercent的函数,来获取血量的百分比
在这里插入图片描述
函数内部实现,Player是自己创建的变量
在这里插入图片描述

属性绑定

属性绑定和函数绑定类似,也是每帧调用,区别在于函数绑定是让UI同步函数的返回值,属性绑定是让UI同步属性字段的值
要求属性的数据类型必须和UI所需要的值相同

点开绑定,选择一个属性
以血量为例,虽然player中有当前血量,但是health的类型是float,不是string,所以不能直接用,我们需要在UI蓝图里新建要给HealthText的属性,类型为text或string,然后在UI蓝图的tcik事件里每帧转换数据类型给HealthText,最后再给UI绑定属性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

事件绑定

参考这个

九宫格分割图片

参考unity的Slice模式的图片,用于保持背景图片边框在拉伸时不会变化
选择图片,将他的绘制为由图像改为盒体,并设置边缘
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebGL图形编程实战【3】:矩阵操控 × 从二维到三维的跨越

上一篇文章:WebGL图形编程实战【2】:动态着色 纹理贴图技术揭秘 仓库地址:github…、gitee… 矩阵操控 矩阵变换 回到前面关于平移缩放、旋转的例子当中,我们是通过改变传递进去的xy的值来改变的。 在进行基础变换的时候&…

目标识别与双目测距(1)环境搭建:Ubuntu+yolov5+pcl库

环境情况 ubuntu 18.04 → 20.04(最终) 安装Ubuntu1804虚拟机系统 Anaconda:可参考我的另一篇文章 Python 3.6.13 → 3.8(最终)Anaconda3-2021.05 目标识别:YOLOv5相关 1、安装git sudo apt install gi…

GAMES101-现代计算机图形学入门(Animation/simulation)

目录 一些科普Keyframe AnimatorPhysical Simulation质点弹簧系统 Mass Spring Rope粒子系统运动学 Forward Kinematics逆运动学Inverse KinematicsRiggingMotion Capture 第二次课 cont.Single Particle Simulation流体模拟 Fluid Simulation GitHub主页:https://g…

[C++] 智能指针 进阶

标题:[C] 智能指针 进阶 水墨不写bug 在很久之前我们探讨了智能指针的浅显认识,接下来会更加深入,从源码角度认识智能指针,从而了解智能指针的设计原理,并应用到以后的工作项目中。 本文将会按照C智能指针的发展历史&…

Linux系统中应用端控制串口的基本方法

在编写应用程序的时候,我们需要将上面提到的串口参数如波特率、数据位、奇偶校验位、停止位 等设置好,通讯双方才能在预定好的参数下相互通讯。哪里设置参数,通过什么设置参数,还有 如何设置这些参数,接下来我们分别来实现。 1:linux系统中termios结构体用法 POS…

高效加盖骑缝章:PDF文件处理的实用解决方案

今天为大家推荐一款实用的PDF骑缝章加盖工具,它能一键生成精准骑缝章,无需复杂操作,极大提升办公效率。 01 软件介绍 这款软件就是PDF加盖骑缝章: 绿色免费且无需安装,解压即用,不占用系统资源 支持Windo…

LLM架构解析:NLP基础(第一部分)—— 模型、核心技术与发展历程全解析

本专栏深入探究从循环神经网络(RNN)到Transformer等自然语言处理(NLP)模型的架构,以及基于这些模型构建的应用程序。 本系列文章内容: NLP自然语言处理基础(本文)词嵌入&#xff0…

黑马点评Feed流推送帖子zset实现

什么是Feed流? 顾名思义就是投喂流 传统的信息查找方式用户需要手动去搜寻 Feed流就是不再是用户自己找 而是服务端主动投喂他喜欢/想看到的信息 考虑以下场景: 张三关注了李四 王五关注了李四 当李四发了动态时 它的粉丝们在我的关注列表里就能看到自己关注的人发的动态且最…

详解CountDownLatch底层源码

大家好,我是此林。 今天来分享一下CountDownLatch的底层源码。 CountDownLatch 是 Java 并发包 (java.util.concurrent) 中的线程之间同步工具类,主要用于协调多个线程的执行顺序。其核心思想是通过计数器实现线程间的"等待-唤醒"机制&#…

Ubuntu24.04 离线安装 MySQL8.0.41

一、环境准备 1.1 官方下载MySQL8.0.41 完整包 1.2 上传包 & 解压 上传包名称是:mysql-server_8.0.41-1ubuntu24.04_amd64.deb-bundle.tar # 切换到上传目录 cd /home/MySQL8 # 解压: tar -xvf mysql-server_8.0.41-1ubuntu24.04_amd64.deb-bundl…

【算法应用】基于粒子群算法PSO求解无人机集群路径规划问题

目录 1.无人机路径规划模型2.粒子群算法PSO原理3.结果展示4.参考文献5.代码获取 1.无人机路径规划模型 路径最优性 为了实现UAV的高效运行,计划的路径需要在某一特定标准上达到最优。UAV飞行路径Xi表示为UAV需要飞过的一系列n个航路点,每个航路点对应搜…

电脑ip地址每次开机会换吗?全面解析

在探讨“电脑IP地址每次开机会换吗”这一问题时,我们首先需要明确的是,IP地址的更换情况并非一成不变,而是受到多种因素的影响,其中最核心的是IP地址的类型——动态IP还是静态IP。这两种类型的IP地址在分配方式、稳定性以及使用场…

sqli-labs靶场 less 8

文章目录 sqli-labs靶场less 8 布尔盲注 sqli-labs靶场 每道题都从以下模板讲解,并且每个步骤都有图片,清晰明了,便于复盘。 sql注入的基本步骤 注入点注入类型 字符型:判断闭合方式 (‘、"、’、“”&#xf…

docker-Dify外接Fastgpt知识库

参考地址:https://mp.weixin.qq.com/s/crQrneHZ0sT-c04YanofSw 总体步骤 部署fda(fastgpt-dify-adapter)docker 部署dify,fastgpt在fastgpt创建open apikey,复制知识库id;在dify外接fastgpt知识库; docker安装 下载…

Django学习笔记

Django学习笔记 安装django pip install django创建APP 用django来写后端的时候,要把各个功能分散到各个创建好的APP去实现 在终端输入 python manage.py startapp app01(APP名称)APP内部文件 admin.py django默认提供了admin后台管理 apps.py app启动类 mo…

向量数据库是什么,它有什么作用?

环境: 向量数据库 问题描述: 向量数据库是什么,它有什么作用 解决方案: 向量数据库是一种专门设计用于高效处理高维向量数据的系统,主要用于存储、索引、查询和检索高维向量数据,特别适合处理非结构化数…

【SPP】蓝牙串口协议应用层深度解析:从连接建立到实战开发

目录 一、SPP应用层协议框架与角色模型 1.1 分层协议栈模型 1.2 设备角色模型(DevA 与 DevB 交互) 二、连接建立流程:从 SDP 到 RFCOMM 2.1 服务发现(SDP)流程(SDP 记录关键参数) 2.2 连接…

【Portainer】Docker可视化组件安装

Portainer Portainer 是用于管理容器化环境的一体化平台工程解决方案,提供广泛的定制功能,以满足个人开发人员和企业团队的需求。 官方地址: https://www.portainer.io/ 安装 在 WSL / Docker Desktop 上使用 Docker 安装 Portainer CE 通过命令或UI页…

【第33节】windows原理:初探PE文件

目录 一、PE文件概述 二、DOS头部 三、DOS头部与NT头部之间 四、NT头部 五、文件头区段 六、了解个别概念 七、扩展头 八、区段头表 一、PE文件概述 PE文件是有特定格式的文件,像后缀名是EXE的可执行文件、后缀名是DLL的动态链接库文件、sys格式的驱动文件&…

谷粒微服务高级篇学习笔记整理---异步线程池

多线程回顾 多线程实现的4种方式 1. 继承 Thread 类 通过继承 Thread 类并重写 run() 方法实现多线程。 public class MyThread extends Thread {Overridepublic void run() {System.out.println("线程运行: " Thread.currentThread().getName());} }// 使用 pub…