UE4 UMG初始化并获得蓝图中的控件

创建一个c++类集成Userwidget,在创建一个蓝图类继承我们刚刚创建的c++类。
.h文件
public:
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "UI")
UButton* StartButton;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "UI")
UButton* RegisterButton;

UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "UI")
UButton* ExitButton;
public:
//重写初始化方法,该方法会在初始化时调用
virtual bool Initialize() override;

//自定义 初始化控件引用
void Init();

UFUNCTION()
void ExitButClickEvent();
.cpp
bool UUserHttpWidget::Initialize()
{
if (!Super::Initialize())
{
return false;
}
Init();
return true;
}

void UUserHttpWidget::Init()
{
/** 初始化游戏开始按钮 GetWidgetFromName 从实例化的蓝图中获取对应名字的控件*/
StartButton = Cast(GetWidgetFromName(TEXT("Button_Start")));
/** 初始化游戏注册按钮 */
RegisterButton = Cast(GetWidgetFromName(TEXT("Button_Register")));
/** 初始化游戏退出按钮 */
ExitButton = Cast(GetWidgetFromName(TEXT("Button_Exit")));
/** 设置退出游戏按钮的点击事件 */
if (ExitButton)
{
ExitButton->OnClicked.AddDynamic(this,&UUserHttpWidget::ExitButClickEvent);
}
}

void UUserHttpWidget::ExitButClickEvent()
{
/** 退出游戏 */

UKismetSystemLibrary::QuitGame(GetWorld(), nullptr, EQuitPreference::Quit);
}

你可能感兴趣的:(UE4 UMG初始化并获得蓝图中的控件)