如何获得项目中所有 UClass 的列表(蓝图和 C++)

How can I get a List of all UClasses in the project (Blueprint and C++)

我想获取所有 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,这个问题是因为我找到了那个方法。

我终于放了一个 TObjectIterator 这样我就可以得到我想要的每个 class:

    for (TObjectIterator<UClass> It; It; ++It)
    {
        if (It->IsChildOf(AActor::StaticClass()) || It->IsChildOf(APawn::StaticClass()) || It->IsChildOf(ACharacter::StaticClass()))
        {
            actorClasses.Add(*It);
        }
        else if (It->IsChildOf(USceneComponent::StaticClass()))
        {
            componentClasses.Add(*It);
        }
        else if (It->IsChildOf(UUserWidget::StaticClass()))
        {
            widgets.Add(*It);
        }
    }