上一篇文章介绍了如何获取金币并保存数据。这次来介绍一下如何让获取的金币数量显示到界面上面。
首先添加UMG模块,在.Build.cs文件中添加“UMG”模块;
创建继承自UserWidget类的C++类;
初始化方法,重写父类虚函数,在里面进行初始化;
virtual bool Initialize() override;
if (!Super::Initialize())
{
return false;
}
//初始化的按钮等
//...
return true;
之后,创建蓝图的UserWidget,在类设置的地方,让创建的蓝图类的父类设置成自己创建的C++类;
?界面设置:
?绑定界面的组件的方式:
1.使用GetWidgetFromName(名字);
2.UPROPERTY(meta = (BindWidget)),注:变量名称要和UserWidget中一致才会绑定成功。
在C++类中创建更新金币数值的方法:
void UFPSMainUI::UpdatePlayerCoins(int32 NewNum)
{
if (CoinsNum)
{
FText Text = FText::AsNumber(NewNum);
CoinsNum->SetText(Text);
}
}
获取资源:
//获取FPSMainUI蓝图
static ConstructorHelpers::FClassFinder<UUserWidget> MainUI(TEXT("WidgetBlueprint'/Game/Blueprints/UI/BP_FPSMainUI.BP_FPSMainUI_C'"));
if (MainUI.Succeeded())
{
FPSMainUI = MainUI.Class;
}
创建视图:
//添加视图
if (FPSMainUI)
{
MainUIWidget = CreateWidget<UFPSMainUI>(GetWorld(), FPSMainUI);
if (MainUIWidget)
{
MainUIWidget->AddToViewport();
MainUIWidget->UpdatePlayerCoins(PlayerCoins);
}
}
结果:
?在获取金币的时候可以再调用更新数值显示的方法即可。
|