跳到主内容
Documentation

1.c++创建widget.md

2025/12/16预计阅读 1 分钟

蓝图做法

FClassFinder 只能在构造函数中调用,其他位置调用可能会闪退 其他位置,比如BeginPlay推荐使用LoadClass

设置这个属性后,需要在蓝图中选择某个蓝图widget


 UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName="背包蓝图类")
TSubclassOf<UUserWidget> BBWidgetClass;

C++做法

使用ConstructorHelpers::FClassFinder根据路径来查找class

注意尾巴要手动加上_C,这个是UE规定的约束


static ConstructorHelpers::FClassFinder<UMyBackpackWidget> BBWidgetClassFinder(TEXT("/Script/UMGEditor.WidgetBlueprint'/Game/UMG_MyBackpackWidget.UMG_MyBackpackWidget_C'"));

或者使用LoadClass


UClass* widgetClass = LoadClass<UUserWidget>(NULL,TEXT("/Script/UMGEditor.WidgetBlueprint'/Game/UMG_MyBackpackWidget.UMG_MyBackpackWidget_C'")); 
返回顶部