在窗口部件显示复活信息
2023年11月21日 2024年1月11日
Respawn Widget
说明
若回合内可以复活, 显示冷却时长; 否则, 显示 Wait
字样
创建窗口部件类
- | |
---|---|
基类 | UserWidget |
路径 | UI |
名称 | STUSpectatorWidget |
属性 | Public |
实现窗口部件类
添加蓝图接口: 返回回合内复活冷却状态和冷却倒计时
public
ShootThemUp: UI/STUSpectatorWidget.h
1UFUNCTION(BlueprintCallable) 2bool IsRespawnCold(int32 &RespawnCountDown) const;
ShootThemUp: UI/STUSpectatorWidget.cpp
1#include "STUUtils.h" 2#include "Components/STURespawnComponent.h" 3 4bool USTUSpectatorWidget::IsRespawnCold(int32 &RespawnCountDown) const 5{ 6 const auto RespawnComponent = STUUtils::GetSTUPlayerComponent<USTURespawnComponent>(GetOwningPlayer()); 7 if (!RespawnComponent || !RespawnComponent->IsRespawnTimerAlive()) return false; 8 9 RespawnCountDown = RespawnComponent->GetRespawnCountDown(); 10 return true; 11}
RespawnComponent提供接口
public
ShootThemUp: Components/STURespawnComponent.h
1int32 GetRespawnCountDown() const { return RespawnCountDown; } 2bool IsRespawnTimerAlive() const; /* IsRespawnInProgress */
ShootThemUp: Components/STURespawnComponent.cpp
1#include "TimerManager.h" 2 3bool USTURespawnComponent::IsRespawnTimerAlive() const 4{ 5 return GetWorld() && GetWorld()->GetTimerManager().IsTimerActive(RespawnTimer); 6}
修改蓝图窗口部件
WBP_SpectatorHUD
-
修改基类为STUSpectatorWidget
-
方法一
Graph > Class Settings > Details
-
方法二
File > Reparent Blurprint
-
-
设置文本字号
-
为文本内容添加绑定
-
修改函数名, 实现绑定
查看
-
显示剩余冷却时间
-
提示等待下一回合开始