繁体   English   中英

菜单暂停 C++ UE4

[英]Menu pause C++ UE4

你知道如何在 C++ 中暂停虚幻吗? 我有一个从 UUserWidget 派生的带有 RESUME 按钮和脚本 C++ 的 Widget 蓝图。 我想按 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, bPaused);
  
    bTogglePause = !bTogglePause;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM