【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"中的打印信息的节点也删除

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

相关推荐
吴梓穆2 天前
UE5学习笔记 FPS游戏制作33 换子弹 动画事件
笔记·学习·ue4
吴梓穆2 天前
UE5学习笔记 FPS游戏制作31 显示计分板
笔记·学习·ue4
吴梓穆3 天前
UE5学习笔记 FPS游戏制作28 显式玩家子弹数
笔记·学习·ue4
Deveuper5 天前
UE5 UE4 右键/最大化-菜单-不显示/闪/黑色/黑屏--修复方法
ue5·ue4
吴梓穆6 天前
UE4学习笔记 FPS游戏制作32 主菜单,暂停游戏,显示鼠标指针
笔记·学习·ue4
吴梓穆7 天前
UE4学习笔记 FPS游戏制作17 让机器人持枪 销毁机器人时也销毁机器人的枪 让机器人射击
笔记·学习·ue4
吴梓穆8 天前
UE4学习笔记 FPS游戏制作29 更换武器时更换武器的图标
笔记·学习·ue4
吴梓穆9 天前
UE4学习笔记 FPS游戏制作15修正可以换枪中可以继续换枪和开火的Bug
笔记·学习·ue4
吴梓穆14 天前
UE4学习笔记 FPS游戏制作10 制作UI准星
笔记·学习·ue4
avi911119 天前
UE4-UE5虚幻引擎,前置学习二--------UI反射器,略屌
ue5·ue4·虚幻·editor代码反射