Update Pause Menu to custom buttons

This commit is contained in:
baz 2025-09-08 21:30:16 +01:00
parent e6f04b30da
commit 20dbb97b7c
4 changed files with 37 additions and 6 deletions

Binary file not shown.

View File

@ -15,6 +15,7 @@
#include "Blueprint/UserWidget.h"
#include "Blueprint/WidgetBlueprintLibrary.h"
#include "Kismet/GameplayStatics.h"
#include "Widgets/CustomButton.h"
#include "Widgets/GameOverWidget.h"
#include "Widgets/HUDWidget.h"
#include "Widgets/LevelUpWidget.h"
@ -126,7 +127,7 @@ void AVampirePlayerController::OnPause(const FInputActionValue& PauseInput)
if (CurrentPauseUI)
{
CurrentPauseUI->AddToViewport();
UWidgetBlueprintLibrary::SetInputMode_UIOnlyEx(this, CurrentPauseUI, EMouseLockMode::LockInFullscreen);
UWidgetBlueprintLibrary::SetInputMode_UIOnlyEx(this, CurrentPauseUI->ResumeButton, EMouseLockMode::LockInFullscreen);
bShowMouseCursor = true;
}
}

View File

@ -13,17 +13,28 @@ void UPauseWidget::NativeConstruct()
{
Super::NativeConstruct();
SetIsFocusable(false);
if (ResumeButton)
{
ResumeButton->OnClicked.AddUniqueDynamic(this, &UPauseWidget::ResumeButtonOnClicked);
ResumeButton->OnFocused.AddUniqueDynamic(this, &UPauseWidget::ResumeButtonOnFocused);
}
if (ReturnToMainMenuButton)
{
ReturnToMainMenuButton->OnClicked.AddUniqueDynamic(this, &UPauseWidget::ReturnToMainMenuButtonOnClicked);
ReturnToMainMenuButton->OnFocused.AddUniqueDynamic(this, &UPauseWidget::ReturnToMainMenuButtonOnFocused);
}
SetIsFocusable(true);
ResumeButton->SetKeyboardFocus();
}
FReply UPauseWidget::NativeOnMouseButtonUp(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent)
{
CurrentFocus->SetKeyboardFocus();
return Super::NativeOnMouseButtonUp(InGeometry, InMouseEvent);
}
void UPauseWidget::ResumeButtonOnClicked()
@ -36,8 +47,11 @@ void UPauseWidget::ResumeButtonOnClicked()
PlayerController->bShowMouseCursor = false;
PlayerController->SetPause(false);
}
}
SetIsFocusable(false);
void UPauseWidget::ResumeButtonOnFocused(FFocusEvent InFocusEvent)
{
SetCurrentFocus(ResumeButton);
}
void UPauseWidget::ReturnToMainMenuButtonOnClicked()
@ -56,3 +70,8 @@ void UPauseWidget::ReturnToMainMenuButtonOnClicked()
}
}
}
void UPauseWidget::ReturnToMainMenuButtonOnFocused(FFocusEvent InFocusEvent)
{
SetCurrentFocus(ReturnToMainMenuButton);
}

View File

@ -13,21 +13,32 @@ class UCustomButton;
*
*/
UCLASS()
class VAMPIRES_API UPauseWidget : public UUserWidget
class VAMPIRES_API UPauseWidget : public UVampireInteractiveWidget
{
GENERATED_BODY()
public:
UPROPERTY(meta=(BindWidget))
TObjectPtr<UCustomButton> ResumeButton;
UPROPERTY(meta=(BindWidget))
TObjectPtr<UCustomButton> ReturnToMainMenuButton;
protected:
virtual void NativeConstruct() override;
virtual FReply NativeOnMouseButtonUp(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent) override;
private:
UFUNCTION()
void ResumeButtonOnClicked();
UFUNCTION()
void ResumeButtonOnFocused(FFocusEvent InFocusEvent);
UFUNCTION()
void ReturnToMainMenuButtonOnClicked();
UFUNCTION()
void ReturnToMainMenuButtonOnFocused(FFocusEvent InFocusEvent);
};