【发布时间】:2019-11-08 14:13:36
【问题描述】:
我想获取所有 UClass 的列表。
我尝试在 ClassViewer 中搜索,但它给了我一个 SWidget,所以我不知道如何从中获取 UUserWidget*。
FClassViewerModule& ClassViewerModule = FModuleManager::LoadModuleChecked<FClassViewerModule>("ClassViewer");
FClassViewerInitializationOptions initClassViewer = FClassViewerInitializationOptions();
FOnClassPicked onClassPicked = FOnClassPicked();
TSharedRef<SWidget> classesWidget = ClassViewerModule.CreateClassViewer(initClassViewer, onClassPicked);
如果我无法从该 SWidget 获取 UUserWidget*,是否有其他方法可以获取项目中当前创建的所有 UClass 的列表?
编辑
我只想获取 UClasses 的列表,以便将其放入小部件 ComboBox,我认为如果我从“classesWidget”获取 UUserWidget,那么我可以获得 UClasses 的值(它们应该在 PanelBox 内) ,但我真正需要的是获取列表,它不需要是UUserWidget,那个问题是因为我找到了那个方法。
【问题讨论】:
-
我无法理解您的确切问题是什么。您是否在问如何让用户选择一个
UUserWidget子类,然后在运行时实例化它?我不确定UUserWidget与获取所有UClass子类的列表有什么关系。 -
@Ruzihm 我只想获取一个 UClasses 列表,这样我就可以将它放在一个小部件 ComboBox 中,我想如果我从“classesWidget”中获得一个 UUserWidget,那么我可以获得 UClasses 的值(它们应该在 PanelBox 中),但我真正需要的是获取列表,它不需要是 UUserWidget,这个问题是因为我找到了那个方法。
-
TSubClassOf 将免费为您提供一个资产选择器,引擎中还有一个属性视图小部件旨在复制相同的行为,尽管我忘记了名称。
标签: c++ unreal-engine4