Add Basic Pause Menue
This commit is contained in:
parent
4294658f41
commit
9c6c4e322a
BIN
Content/Player/BP_PlayerController.uasset
(Stored with Git LFS)
BIN
Content/Player/BP_PlayerController.uasset
(Stored with Git LFS)
Binary file not shown.
BIN
Content/Widgets/Pause/BP_PauseWidget.uasset
(Stored with Git LFS)
Normal file
BIN
Content/Widgets/Pause/BP_PauseWidget.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -9,8 +9,10 @@
|
||||
#include "Inputable.h"
|
||||
#include "VampireGameMode.h"
|
||||
#include "Blueprint/UserWidget.h"
|
||||
#include "Blueprint/WidgetBlueprintLibrary.h"
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
#include "Widgets/HUDWidget.h"
|
||||
#include "Widgets/PauseWidget.h"
|
||||
|
||||
void AVampirePlayerController::OnPossess(APawn* aPawn)
|
||||
{
|
||||
@ -94,7 +96,16 @@ void AVampirePlayerController::OnPause(const FInputActionValue& PauseInput)
|
||||
|
||||
if (SetPause(true))
|
||||
{
|
||||
//TODO: Add pause screen
|
||||
if (PauseUI)
|
||||
{
|
||||
currentPauseUI = CreateWidget<UPauseWidget, AVampirePlayerController*>(this, PauseUI.Get());
|
||||
if (currentPauseUI)
|
||||
{
|
||||
currentPauseUI->AddToViewport();
|
||||
UWidgetBlueprintLibrary::SetInputMode_UIOnlyEx(this, currentPauseUI, EMouseLockMode::LockInFullscreen);
|
||||
bShowMouseCursor = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include "GameFramework/PlayerController.h"
|
||||
#include "VampirePlayerController.generated.h"
|
||||
|
||||
class UPauseWidget;
|
||||
struct FInputActionValue;
|
||||
class UInputAction;
|
||||
class UHUDWidget;
|
||||
@ -18,10 +19,13 @@ class VAMPIRES_API AVampirePlayerController : public APlayerController
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
|
||||
// UI
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||
TSubclassOf<UHUDWidget> PlayerHUD = nullptr;
|
||||
|
||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||
TSubclassOf<UPauseWidget> PauseUI = nullptr;
|
||||
|
||||
// Inputs
|
||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
||||
UInputAction* MovementAction;
|
||||
@ -33,6 +37,8 @@ private:
|
||||
|
||||
TObjectPtr<UHUDWidget> currentPlayerHUD = nullptr;
|
||||
|
||||
TObjectPtr<UPauseWidget> currentPauseUI = nullptr;
|
||||
|
||||
FTimerHandle pawnLifeTimeHandle;
|
||||
|
||||
protected:
|
||||
|
40
Source/vampires/Widgets/PauseWidget.cpp
Normal file
40
Source/vampires/Widgets/PauseWidget.cpp
Normal file
@ -0,0 +1,40 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
|
||||
#include "PauseWidget.h"
|
||||
|
||||
#include "Blueprint/WidgetBlueprintLibrary.h"
|
||||
#include "Components/Button.h"
|
||||
#include "Kismet/GameplayStatics.h"
|
||||
|
||||
void UPauseWidget::Init()
|
||||
{
|
||||
}
|
||||
|
||||
void UPauseWidget::NativeConstruct()
|
||||
{
|
||||
Super::NativeConstruct();
|
||||
|
||||
if (ResumeButton)
|
||||
{
|
||||
ResumeButton->OnClicked.AddUniqueDynamic(this, &UPauseWidget::ResumeButtonClicked);
|
||||
}
|
||||
|
||||
SetIsFocusable(true);
|
||||
}
|
||||
|
||||
void UPauseWidget::ResumeButtonClicked()
|
||||
{
|
||||
//TODO: Implementation
|
||||
|
||||
RemoveFromParent();
|
||||
|
||||
if (APlayerController* playerController = UGameplayStatics::GetPlayerController(GetWorld(), 0))
|
||||
{
|
||||
UWidgetBlueprintLibrary::SetInputMode_GameOnly(playerController);
|
||||
playerController->bShowMouseCursor = false;
|
||||
playerController->SetPause(false);
|
||||
}
|
||||
|
||||
SetIsFocusable(false);
|
||||
}
|
31
Source/vampires/Widgets/PauseWidget.h
Normal file
31
Source/vampires/Widgets/PauseWidget.h
Normal file
@ -0,0 +1,31 @@
|
||||
// Fill out your copyright notice in the Description page of Project Settings.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Blueprint/UserWidget.h"
|
||||
#include "PauseWidget.generated.h"
|
||||
|
||||
class UButton;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
UCLASS()
|
||||
class VAMPIRES_API UPauseWidget : public UUserWidget
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
|
||||
UPROPERTY(BlueprintReadWrite, meta=(BindWidget))
|
||||
UButton* ResumeButton;
|
||||
|
||||
void Init();
|
||||
|
||||
virtual void NativeConstruct() override;
|
||||
|
||||
private:
|
||||
|
||||
UFUNCTION()
|
||||
void ResumeButtonClicked();
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user