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 "Inputable.h"
|
||||||
#include "VampireGameMode.h"
|
#include "VampireGameMode.h"
|
||||||
#include "Blueprint/UserWidget.h"
|
#include "Blueprint/UserWidget.h"
|
||||||
|
#include "Blueprint/WidgetBlueprintLibrary.h"
|
||||||
#include "Kismet/GameplayStatics.h"
|
#include "Kismet/GameplayStatics.h"
|
||||||
#include "Widgets/HUDWidget.h"
|
#include "Widgets/HUDWidget.h"
|
||||||
|
#include "Widgets/PauseWidget.h"
|
||||||
|
|
||||||
void AVampirePlayerController::OnPossess(APawn* aPawn)
|
void AVampirePlayerController::OnPossess(APawn* aPawn)
|
||||||
{
|
{
|
||||||
@ -94,7 +96,16 @@ void AVampirePlayerController::OnPause(const FInputActionValue& PauseInput)
|
|||||||
|
|
||||||
if (SetPause(true))
|
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 "GameFramework/PlayerController.h"
|
||||||
#include "VampirePlayerController.generated.h"
|
#include "VampirePlayerController.generated.h"
|
||||||
|
|
||||||
|
class UPauseWidget;
|
||||||
struct FInputActionValue;
|
struct FInputActionValue;
|
||||||
class UInputAction;
|
class UInputAction;
|
||||||
class UHUDWidget;
|
class UHUDWidget;
|
||||||
@ -18,10 +19,13 @@ class VAMPIRES_API AVampirePlayerController : public APlayerController
|
|||||||
GENERATED_BODY()
|
GENERATED_BODY()
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
// UI
|
||||||
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||||
TSubclassOf<UHUDWidget> PlayerHUD = nullptr;
|
TSubclassOf<UHUDWidget> PlayerHUD = nullptr;
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere, BlueprintReadWrite)
|
||||||
|
TSubclassOf<UPauseWidget> PauseUI = nullptr;
|
||||||
|
|
||||||
// Inputs
|
// Inputs
|
||||||
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
|
||||||
UInputAction* MovementAction;
|
UInputAction* MovementAction;
|
||||||
@ -33,6 +37,8 @@ private:
|
|||||||
|
|
||||||
TObjectPtr<UHUDWidget> currentPlayerHUD = nullptr;
|
TObjectPtr<UHUDWidget> currentPlayerHUD = nullptr;
|
||||||
|
|
||||||
|
TObjectPtr<UPauseWidget> currentPauseUI = nullptr;
|
||||||
|
|
||||||
FTimerHandle pawnLifeTimeHandle;
|
FTimerHandle pawnLifeTimeHandle;
|
||||||
|
|
||||||
protected:
|
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