六一的部落格


关关难过关关过,前路漫漫亦灿灿。



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

  1. 修改基类为STUSpectatorWidget

    • 方法一

      Graph > Class Settings > Details


    • 方法二

      File > Reparent Blurprint


  2. 设置文本字号


  3. 为文本内容添加绑定


  4. 修改函数名, 实现绑定



查看

  1. 显示剩余冷却时间


  2. 提示等待下一回合开始


在窗口部件显示复活信息


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

  1. 修改基类为STUSpectatorWidget

    • 方法一

      Graph > Class Settings > Details


    • 方法二

      File > Reparent Blurprint


  2. 设置文本字号


  3. 为文本内容添加绑定


  4. 修改函数名, 实现绑定



查看

  1. 显示剩余冷却时间


  2. 提示等待下一回合开始