Added debug widget

This commit is contained in:
Kingsmedia 2022-05-11 21:02:33 +02:00
parent fc9bbec5d2
commit e4cfe6fa6c
11 changed files with 124 additions and 0 deletions

Binary file not shown.

View File

@ -5,7 +5,9 @@
#include "Announcement.h"
#include "CharacterOverlay.h"
#include "DebugWidget.h"
#include "Blueprint/UserWidget.h"
#include "Components/TextBlock.h"
void ABlasterHUD::BeginPlay()
{
@ -32,6 +34,16 @@ void ABlasterHUD::AddAnnouncement()
}
}
void ABlasterHUD::AddDebugWidget()
{
APlayerController* PlayerController = GetOwningPlayerController();
if (PlayerController && DebugWidgetClass)
{
DebugWidget = CreateWidget<UDebugWidget>(PlayerController, DebugWidgetClass);
DebugWidget->AddToViewport();
}
}
void ABlasterHUD::DrawHUD()
{
Super::DrawHUD();

View File

@ -33,12 +33,19 @@ public:
virtual void DrawHUD() override;
void AddCharacterOverlay();
void AddAnnouncement();
void AddDebugWidget();
UPROPERTY(EditAnywhere, Category = "Player Stats")
TSubclassOf<class UUserWidget> CharacterOverlayClass;
UPROPERTY()
class UCharacterOverlay* CharacterOverlay;
UPROPERTY()
class UDebugWidget* DebugWidget;
UPROPERTY(EditAnywhere, Category = "Widget")
TSubclassOf<class UUserWidget> DebugWidgetClass;
UPROPERTY(EditAnywhere, Category = "Announcements")
TSubclassOf<class UUserWidget> AnnouncementClass;

View File

@ -0,0 +1,5 @@
// Fill out your copyright notice in the Description page of Project Settings.
#include "DebugWidget.h"

View File

@ -0,0 +1,38 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "DebugWidget.generated.h"
/**
*
*/
UCLASS()
class BLASTER_API UDebugWidget : public UUserWidget
{
GENERATED_BODY()
public:
UPROPERTY(meta = (BindWidget))
class UTextBlock* DebugMsg1;
UPROPERTY(meta = (BindWidget))
UTextBlock* DebugMsg2;
UPROPERTY(meta = (BindWidget))
UTextBlock* DebugMsg3;
UPROPERTY(meta = (BindWidget))
UTextBlock* DebugMsg4;
UPROPERTY(meta = (BindWidget))
UTextBlock* DebugMsg5;
UPROPERTY(meta = (BindWidget))
UTextBlock* DebugMsg6;
};

View File

@ -8,6 +8,7 @@
#include "Blaster/HUD/Announcement.h"
#include "Blaster/HUD/BlasterHUD.h"
#include "Blaster/HUD/CharacterOverlay.h"
#include "Blaster/HUD/DebugWidget.h"
#include "Components/ProgressBar.h"
#include "Components/TextBlock.h"
#include "GameFramework/GameMode.h"
@ -37,6 +38,13 @@ void ABlasterPlayerController::Tick(float DeltaTime)
SetHUDTime();
CheckTimeSync(DeltaTime);
PollInit();
if (DebugWidget)
{
SetDebugMsg1(TEXT("ServerTime: "), FString::Printf(TEXT("%f"), GetServerTime()));
SetDebugMsg2(TEXT("ClientServerDelta: "), FString::Printf(TEXT("%f"), ClientServerDelta));
SetDebugMsg3(TEXT("LevelStartingTime: "), FString::Printf(TEXT("%f"), LevelStartingTime));
}
}
void ABlasterPlayerController::CheckTimeSync(float DeltaTime)
@ -74,6 +82,7 @@ void ABlasterPlayerController::ClientJoinMidgame_Implementation(FName StateOfMat
if (BlasterHUD && MatchState == MatchState::WaitingToStart)
{
BlasterHUD->AddAnnouncement();
BlasterHUD->AddDebugWidget();
}
}
@ -217,6 +226,42 @@ void ABlasterPlayerController::SetHUDAnnouncementCountdown(float CountdownTime)
}
}
void ABlasterPlayerController::SetDebugMsg1(FString Key, FString Value)
{
bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg1;
if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg1->SetText(FText::FromString(Key.Append(Value)));
}
void ABlasterPlayerController::SetDebugMsg2(FString Key, FString Value)
{
bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg2;
if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg2->SetText(FText::FromString(Key.Append(Value)));
}
void ABlasterPlayerController::SetDebugMsg3(FString Key, FString Value)
{
bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg3;
if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg3->SetText(FText::FromString(Key.Append(Value)));
}
void ABlasterPlayerController::SetDebugMsg4(FString Key, FString Value)
{
bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg4;
if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg4->SetText(FText::FromString(Key.Append(Value)));
}
void ABlasterPlayerController::SetDebugMsg5(FString Key, FString Value)
{
bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg5;
if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg5->SetText(FText::FromString(Key.Append(Value)));
}
void ABlasterPlayerController::SetDebugMsg6(FString Key, FString Value)
{
bool bHUDValid = BlasterHUD && BlasterHUD->DebugWidget && BlasterHUD->DebugWidget->DebugMsg6;
if (bHUDValid) BlasterHUD->DebugWidget->DebugMsg6->SetText(FText::FromString(Key.Append(Value)));
}
void ABlasterPlayerController::SetHUDTime()
{
float TimeLeft = 0.f;
@ -252,6 +297,14 @@ void ABlasterPlayerController::SetHUDTime()
void ABlasterPlayerController::PollInit()
{
if (DebugWidget == nullptr)
{
if (BlasterHUD && BlasterHUD->DebugWidget)
{
DebugWidget = BlasterHUD->DebugWidget;
}
}
if (CharacterOverlay == nullptr)
{
if (BlasterHUD && BlasterHUD->CharacterOverlay)

View File

@ -27,6 +27,12 @@ public:
void SetHUDCarriedAmmo(int32 Ammo);
void SetHUDMatchCountdown(float CountdownTime);
void SetHUDAnnouncementCountdown(float CountdownTime);
void SetDebugMsg1(FString Key, FString Value);
void SetDebugMsg2(FString Key, FString Value);
void SetDebugMsg3(FString Key, FString Value);
void SetDebugMsg4(FString Key, FString Value);
void SetDebugMsg5(FString Key, FString Value);
void SetDebugMsg6(FString Key, FString Value);
// Synced with server world clock
virtual float GetServerTime();
@ -84,6 +90,9 @@ private:
UFUNCTION()
void OnRep_MatchState();
UPROPERTY()
class UDebugWidget* DebugWidget;
UPROPERTY()
class UCharacterOverlay* CharacterOverlay;
bool bInitializeCharacterOverlay = false;