菜单暂停 C++ UE4
Menu pause C++ UE4
你知道在c++中如何在unreal上暂停吗?
我有一个带有恢复按钮的小部件蓝图和派生自 UUserWidget 的 C++ 脚本。
我想按 tab 键暂停游戏。
请问有人有解决办法吗?
这是我的 MenuPause.h :
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "Components/Button.h"
#include "MenuPause.generated.h"
/**
*
*/
UCLASS()
class PROJET2_API UMenuPause : public UUserWidget
{
GENERATED_BODY()
public:
virtual bool Initialize() override;
UPROPERTY(meta = (BindWidget))
class UButton* ResumeButton;
UFUNCTION()
void OnClickResume(bool bPaused);
}
这是我的 MenuPause.cpp :
#include "MenuPause.h"
#include "Kismet/GameplayStatics.h"
bool UMenuPause::Initialize()
{
Super::Initialize();
ResumeButton->OnClicked.AddDynamic(UMenuPause::OnClickResume(bool bPaused));
return true;
}
void UMenuPause::OnClickResume(bool bPaused)
{
UGameplayStatics::SetGamePaused(ResumeButton, bPaused);
//UGameplayStatics::OpenLevel(this, FName(*GetWorld()->GetName()), false);
}
感谢您的理解:)
//PlayerController
.h
virtual void SetupInputComponent() override;
UFUNCTION()
void TogglePauseEvent();
.cpp
void SetupInputComponent()
{
Super::SetupInputComponent();
if (InputComponent)
{
this->PlayerInput->AddActionMapping(FInputActionKeyMapping("TogglePause", EKeys::Tab));
InputComponent->BindAction("TogglePause", EInputEvent::IE_Pressed, this, &ThisClass::TogglePauseEvent);
}
}
void TogglePauseEvent()
{
MenuPause->ChangeTogglePause();
}
//UMenuPause
.h
bool bTogglePause = false;
.cpp
void UMenuPause::ChangeTogglePause()
{
UGameplayStatics::SetGamePaused(ResumeButton, bTogglePause);
bTogglePause = !bTogglePause;
}
你知道在c++中如何在unreal上暂停吗? 我有一个带有恢复按钮的小部件蓝图和派生自 UUserWidget 的 C++ 脚本。 我想按 tab 键暂停游戏。 请问有人有解决办法吗?
这是我的 MenuPause.h :
#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "Components/Button.h"
#include "MenuPause.generated.h"
/**
*
*/
UCLASS()
class PROJET2_API UMenuPause : public UUserWidget
{
GENERATED_BODY()
public:
virtual bool Initialize() override;
UPROPERTY(meta = (BindWidget))
class UButton* ResumeButton;
UFUNCTION()
void OnClickResume(bool bPaused);
}
这是我的 MenuPause.cpp :
#include "MenuPause.h"
#include "Kismet/GameplayStatics.h"
bool UMenuPause::Initialize()
{
Super::Initialize();
ResumeButton->OnClicked.AddDynamic(UMenuPause::OnClickResume(bool bPaused));
return true;
}
void UMenuPause::OnClickResume(bool bPaused)
{
UGameplayStatics::SetGamePaused(ResumeButton, bPaused);
//UGameplayStatics::OpenLevel(this, FName(*GetWorld()->GetName()), false);
}
感谢您的理解:)
//PlayerController
.h
virtual void SetupInputComponent() override;
UFUNCTION()
void TogglePauseEvent();
.cpp
void SetupInputComponent()
{
Super::SetupInputComponent();
if (InputComponent)
{
this->PlayerInput->AddActionMapping(FInputActionKeyMapping("TogglePause", EKeys::Tab));
InputComponent->BindAction("TogglePause", EInputEvent::IE_Pressed, this, &ThisClass::TogglePauseEvent);
}
}
void TogglePauseEvent()
{
MenuPause->ChangeTogglePause();
}
//UMenuPause
.h
bool bTogglePause = false;
.cpp
void UMenuPause::ChangeTogglePause()
{
UGameplayStatics::SetGamePaused(ResumeButton, bTogglePause);
bTogglePause = !bTogglePause;
}