【UE4 RTS】11-HUD functionality Part1

news2024/9/25 21:23:01

前言

本篇实现了将游戏状态中的游戏时间和游戏日期通过蓝图接口的方式传递给控件蓝图,并且正确显示,另外还实现了控件蓝图界面上切换12小时和24小时制的游戏时间显示方式。

效果

步骤

一、显示游戏日期

1. 打开蓝图接口“RTS_GameTime_IF”

添加一个新函数,命名为“SetGameClock”

 添加函数的输入输出如下

继续新添加一个函数命名为“SetGameCalender”

添加如下输入输出

2. 打开控件蓝图“GameTime_HUD”

 在图表的类设置中添加蓝图接口“RTS_GameTimeIF”

 3. 打开游戏状态“RTS_GameState_BP”

打开函数“SetCalendar”

 

添加如下节点

 打开函数“SetClock”,添加如下节点

 此时,我们在游戏状态中的游戏日期和游戏时间就可以通过蓝图接口传递到控件蓝图了。

 4. 回到控件蓝图“GameTime_HUD”中,打开接口函数“SetGameCalendar”

将函数输入的GameDate提升为变量,设置输出的Success引脚为True

 在设计器中,选中用于显示第几日的文本,对其本文内容创建一个绑定函数。

 绑定函数命名为“Get_TextBlock_Day_GetDay”

 函数内容如下,其中,“DayLocal”和“DayTextLocal”是局部变量

 此时运行游戏可以看到控件“TextBlock_Day”会显示当前游戏日期中的日。

5. 新建一个枚举类型,命名为“MonthsNamesEnum”,用于表示每个月的月名

 添加如下枚举值

 6. 回到控件蓝图“GameTime_HUD”,对用于显示月份的文本控件的文本内容创建一个绑定函数,绑定函数命名为“Get_TextBlock_Month_GetMonth”

 新添加一个变量,命名为“MonthNameRef”,变量类型为“MonthsNamesEnum”

 函数“Get_TextBlock_Month_GetMonth”的逻辑如下

 此时运行游戏就可以看到游戏日期中的月份了。

在设计器中对用于显示游戏日期中的年份的控件创建一个绑定函数,绑定函数命名为“Get_TextBlock_Year_GetYear”

 

 函数逻辑如下,其中“YearLocal”为数组“GameDate”中的第三个元素提升为的局部变量

 此时运行游戏可以看到游戏日期中年月日都能够正确显示。

二、显示游戏时间

1. 打开控件蓝图“GameTime_HUD”中的接口函数“SetGameClock”

将输入的“GameTime”提升为变量

 增加按钮“Button_MC”的按钮点击事件

添加一个布尔类型的变量,命名为“IsMilitaryTime” ,默认值为True

 按钮“Button_MC”的点击事件逻辑如下,主要用于切换12小时和24小时制

 回到设计器中,对用于显示小时的文本控件的文本内容创建一个绑定函数

 重命名绑定函数的函数名为“Get_TextBlock_Hour_GetHour”

 首先获取数组“GameTime”中的第三个元素,提升为局部变量“HoursLocal”

添加一个字符串类型的局部变量,命名为“HoursTextLocal”,设置默认值为0

 添加如下节点

在设计器中对文本控件“TextBlock_Minute”的文本内容创建一个绑定函数

 绑定的函数命名为“Get_TextBlock_Minute_GetMinute”

 先将数组“GameTime”中的第二个元素取出提升为局部变量,命名为“MinutesLocal”

 新建一个局部变量“MinutesTextLocal”,设置默认值为0

 继续添加如下节点

对如下文本控件的文本内容创建一个绑定函数

 绑定函数命名为“Get_TextBlock_AMOrPM_GetSecondSpecial”

 先将数组“GameTime”中的第一个元素提升为局部变量,命名为“SecondSpecialLocal”

 新建一个局部变量,命名为“SecondSpecialTextLocal”,默认值为0

 继续在函数内添加如下节点

 在设计器中,对如下文本控件的文本内容创建一个绑定函数

 绑定函数命名为“Get_TextBlock_TimeSpace2_SetSpacerSpecial”

 创建一个局部变量“SpecialSpacerLocal”,默认值为“:”

 在函数内添加如下节点

 此时可以看到界面上已经能够正确显示当前游戏的日期和时间:

 如果将游戏状态“RTS_GameState_BP”中的变量“DefaultGameSpeed”和“GameSpeed”从150改为1的话,可以明显看到界面的时间变化加快了。

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

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

相关文章

回声消除-卡尔曼滤波

卡尔曼滤波 卡尔曼滤波的设计过程中需要定义两个变量,一个是状态量,另一个是观测量 状态量 状态量是跟踪目标。将状态量记作 x n \mathbf{x}_n xn​,状态量的协方差矩阵记作 P n \mathbf{P}_n Pn​,可以由前一个时刻的状态&…

视频集中存储/云存储/磁盘阵列EasyCVR平台接入RTSP设备出现离线情况的排查

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

20天部署,支持每天上百家门店咖啡物料配送,顺丰供应链是这样做到的

走进顺丰供应链华北智能仓,映入眼帘是多台自如穿梭的智能搬运机器人和自动高效的分拣设备。1200平米内,拆零输入、分货、按订单取出……通过自动化解决方案,作业效率大幅提升。 这是顺丰供应链与全球仓储机器人引领者极智嘉(Geek)的又一次智…

如何快速搭建app自动化环境编写用例?

使用Airtest 作为测试开发工程师,快速搭建app自动化环境并编写用例可以使用Airtest解决方案来实现。Airtest是一款基于Python的全平台UI自动化测试框架,支持多种移动设备和模拟器,同时集成了丰富的图像识别和手势操作功能。 以下是使用Airt…

有理数思维导图怎么画?这种方法绘制很方便

有理数思维导图怎么画?为什么要绘制思维导图?因为它可以帮助我们更好地组织和理解信息。在数学中,绘制有理数思维导图也可以帮助我们更好地理解有理数的概念和性质。 有理数是我们日常生活中经常接触到的数学概念,包括正整数、负整…

动态内存分配及管理——C语言

目录 一、为什么存在动态内存分配 二、动态内存函数介绍 2.1 malloc 2.2 free 2.3 calloc 2.4 realloc 三、常见的动态内存错误 3.1 对NULL指针的解引用操作 3.2 对动态开辟空间的越界访问 3.3 对非动态开辟内存使用free释放 3.4 使用free释放一块动态开辟内存的一部…

AUTOSAR NvM协议栈集成方法

一、涉及的模块 Bsw:NvM、MemIf、Fee、Crc Mcal:Fls 其中一些芯片厂商的MCAL也会提供Fee模块,本文选择使用ETAS提供的Fee模块,好处是Fee的Block不需要手动配,在NvM中配好了Block之后,生成Bsw代码的同时会…

c语言——查找特定字符在字符串中出现的次数

fgets 函数用于从标准输入(stdin)中读取一行字符串, 并将其存储在指定的字符数组 str 中。 sizeof str/sizeof str[0] 是用来计算字符数组 str 的大小。 这个表达式计算的结果是字符数组 str 可以容纳的元素个数(包括…

linux vscode 下开发

linux vscode 下开发 javajdk插件 java jdk 各种JAVA JDK的镜像分发 编程宝库 - 技术改变世界 jdk 镜像 ubuntu22.04 安装 # Linux x64 64位 jdk-8u351-linux-x64.tar.gztar -zxf jdk-8u351-linux-x64.tar.gz mv jdk1.8.0_351 jdk8/ vim ~/.profile expo…

KEY接口ESD静电保护器件:DW05D5BC-B-E和DW05MS-S

静电在我们日常生活中,可谓是无处不在,我们身上和周围环境就带有很高的静电电压。都知道,ESD静电放电会对电子设备带来威胁甚至损坏。为此,电子设备中按键部位、接口部位以及触摸屏等防静电保护措施是非常有必要的。针对按键KEY接…

Java网络编程(一)网络基础

概述 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递 网络分类 局域网(LAN) 局域网是一种在小区域内使用的,由多台计算机组成的网络,覆盖范围…

如何使用Python获取SAP Temporary key 临时密钥

什么是Sap 临时密钥? SAP 临时密钥是用于激活 SAP 软件的一种许可证,只能在有限的时间内使用。这些密钥可用于评估目的或在系统迁移期间使用。它们是临时解决方案,通常在一定时间后过期。 如何获取Sap Temporary keys? 临时密钥: 如果创建…

Web网页浏览器远程访问jupyter notebook服务器【内网穿透】

文章目录 前言1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 前言 Jupyter Notebook,它是一个交互式的数据科学和计算环境,支持多种编程语言,如…

【仿写tomcat】五、响应静态资源(访问html页面)、路由支持以及多线程改进

访问html页面 如果我们想访问html页面其实就是将本地的html文件以流的方式响应给前端即可,下面我们对HttpResponseServlet这个类做一些改造 package com.tomcatServer.domain;import com.tomcatServer.utils.ScanUtil;import java.io.IOException; import java.io…

全国产EtherCAT运动控制边缘控制器(二):统一的上位机API接口

上节课程我们介绍了全国产EtherCAT运动控制边缘控制器ZMC432H的硬件接口与功能,本节课程我们主要讲解一下正运动API函数封装原理以及自定义API封装例程。 一、功能简介 全国产EtherCAT运动控制边缘控制器ZMC432H是正运动的一款软硬件全国产自主可控,运…

Genoss GPT简介:使用 Genoss 模型网关实现多个LLM模型的快速切换与集成

一、前言 生成式人工智能领域的发展继续加速,大型语言模型 (LLM) 的用途范围不断扩大。这些用途跨越不同的领域,包括个人助理、文档检索以及图像和文本生成。ChatGPT 等突破性应用程序为公司进入该领域并开始使用这项技术进行构建铺平了道路。 大公司正…

SOLIDWORKS有限元分析

SOLIDWORKS是一款广泛使用的三维计算机辅助设计软件,同时它还具有强大的有限元分析功能。有限元分析是一种工程分析方法,它将复杂的实体分解成许多小的有限元素,以便对其进行数学建模和分析。SOLIDWORKS的有限元分析功能可以帮助工程师预测和…

nbcio-boot3.1 解决积木报表基于SSTI的任意代码执行漏洞,积木报表版本从1.4.0升级到最新的1.6.1

1、积木报表基于SSTI的任意代码执行漏洞 使用JeecgBoot 受影响版本中由于积木报表 /jeecg-boot/jmreport/queryFieldBySql Api接口未进行身份校验,使用 Freemarker 处理用户用户传入的 sql 参数,未经授权的攻击者可发送包含恶意 sql 参数的 http 请求&am…

vue3动态组件

1 、 可以通过 shallowRef 把 可以把组件进行包裹 <template><div><el-button click"setclick(son1)">1111</el-button><el-button click"setclick(son2)">2222</el-button><el-button click"setclick(son…

数字变有趣,分析师的必备利器——奥威BI数据可视化工具

数据分析不仅要在短时间内把数据情况摸清、把数据关联梳理清楚&#xff0c;还需要以一直直观易懂的方式将数据信息准确传递给使用者&#xff0c;便于使用者利用这些数据信息去决策管理&#xff0c;这就是数据可视化。说到这&#xff0c;就不得不请出让数据变得有趣、易懂&#…