UE4C++小知识(一)加载Widget的控件蓝图类

34 篇文章 2 订阅

引擎版本为4.24
第一步:写入蓝图类的路径

//写路径
FString WidgetClassLoadPath = FString(TEXT("/Game/Project/UI/WBP_StoreUI.WBP_StoreUI_C"));//一定要加这个后缀名

第二步:获取到该类

//获取类
UClass* Widget = LoadClass<UUserWidget>(NULL, *WidgetClassLoadPath);

这里使用的LoadClass为动态加载类的方法,可以程序运行之后执行,也就是说可以放在Begin或之后的函数中执行。
第三步:创建一个Widget蓝图控件类的对象,用于后面的实际操作

//创建一个widget控件,UStoreUI为继承自UUserWidget的控件,实现了一个SetDataTable方法
	UStoreUI* VendingMachineUI = CreateWidget<UStoreUI>(GetWorld(), Widget);

到这里你便可以直接调用UStoreUI中的方法了。

//设置表格
	VendingMachineUI->SetDataTable(ProductTable);

也可以操纵该WIdget控件对象是否加入视口当中。

//加入视口
VendingMachineUI->AddToViewport();
//从视口中删除
VendingMachineUI->RemoveFromViewport();

附上继承自UUserWidget类的StoreUI类。

#pragma once

#include "CoreMinimal.h"
#include "Blueprint/UserWidget.h"
#include "StoreUI.generated.h"

UCLASS()
class TEST_2_API UStoreUI : public UUserWidget
{
	GENERATED_BODY()
public:
	UFUNCTION(BlueprintCallable)
	virtual void SetDataTable(class UDataTable* Table);//设置StoreUI中的UDataTable变量
	//商品表格
	UPROPERTY(VisibleAnywhere,BlueprintReadWrite,Category="Data")
	class UDataTable* ProductTable;
};

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值