【UE4 RTS】12-HUD functionality Part2

前言

本篇实现了通过按钮控件暂停、加快、减慢游戏速度的功能。

效果

步骤

  1. 打开控件蓝图"GameTime_HUD",在设计器中对进度条控件的百分比创建一个绑定函数

绑定函数命名为"Get_ProgressBar_GameSpeed_SetSpeedDisplay",并设置该函数类别属于GameSpeed

新建一个浮点类型的变量,命名为"SpeedSetting",用于控制游戏速度,设置默认值为3

绑定函数的逻辑节点如下所示:

在设计器中,对如下三个按钮控件创建点击事件

在图表中,创建一个布尔类型的变量,命名为"isPaused",用于表示游戏是否暂停。

新建一个浮点类型变量,命名为"CurrentSpeedSetting"

设置变量"SpeedSetting"和"CurrentSpeedSetting"的类别为"GameSpeed"

在事件图表中添加如下节点

  1. 新建一个枚举,命名为"GameSpeedSettingEnum"

打开"GameSpeedSettingEnum",添加如下枚举值,其中速度0表示暂停,速度为3表示默认速度。

  1. 回到控件蓝图"GameTime_HUD"中,新添加一个函数,命名为"SetGameSpeed"

该函数添加一个输入,类型为我们刚创建的枚举"GameSpeedSettingEnum"

在该函数内创建一个局部变量"SpeedMultiplierLocal"

在函数内添加如下节点

  1. 打开游戏状态"RTS_GameState_BP",将如下"Set GameTime"节点替换为"Set GameSpeed"节点
  1. 回到控件蓝图"GameTime_HUD" 中,添加一个变量,命名为"GameStateRef",变量类型为"RTS_GameState"的对象引用。

继续在函数"SetGameSpeed"中添加如下节点:

回到事件图表中,补全暂停按钮"Button_Pause"的逻辑如下所示:

加快游戏速度的按钮"Button_IncreaseSpeed"的逻辑如下所示:

减少游戏速度的按钮"Button_DecreaseSpeed"的逻辑如下所示:

添加一个变量命名为"PlayerControllerRef",变量类型为"RTS_PlayerController_BP"的对象引用:

  1. 打开玩家控制器"RTS_PlayerController_BP"中的宏"SpawnWidgets":

在刷新节点后,可以看到新出现如下两个引脚

将玩家控制器本身和获取到的游戏状态的引用传入引脚

  1. 打开游戏状态"RTS_GameState_BP"中的函数"SetClock",删除如下区域的节点,让视口中不再输出打印信息。

还有函数"SetCalendar"中的打印信息的节点也删除

此时运行游戏可以看到我们通过点击按钮可以实现控制游戏速度的快慢:

相关推荐
Deveuper4 天前
UE5 C+、C++、C# 构造方法区别示例
c++·ue5·c#·ue4
胡说ba道6 天前
生活小妙招之UE CaptureRT改
ue4·材质
雕花の刺猬9 天前
UE4与WEB-UI通信
前端·ui·ue4·webui
Growthofnotes16 天前
UE4_环境_体积云_通过蓝图来控制云彩的形状及位置。
ue4
Growthofnotes18 天前
UE4_材质_世界场景位置偏移_角色擦除效果
ue4·材质
Runjavago18 天前
UE4外挂实现分析-PC端-附源码
android·ue4
Growthofnotes18 天前
UE4_材质节点_有关距离的_流体模拟
ue4·材质
Deveuper1 个月前
UE5 和 UE4 中常用的控制台命令总结
ue5·ue4
XR-AI-JK1 个月前
UE5肉鸽游戏教程学习
学习·游戏·ue5·ue4·新手学习·游戏教程·ue教程
峰度偏偏1 个月前
【适配】屏幕拖拽-滑动手感在不同分辨率下的机型适配
算法·游戏·unity·ue5·ue4·godot