获取指定目录的所有蓝图文件的UBlueprintGeneratedClass
TArray<UClass*> UFileBFLibrary::getAllClassFromFolder(FString* path)
{
FString folderpath(*path);
UObjectLibrary* lib = UObjectLibrary::CreateLibrary(UObject::StaticClass(), false, GIsEditor);
lib->AddToRoot();
lib->LoadAssetDataFromPath(folderpath);
lib->LoadAssetsFromAssetData();
TArray<FAssetData> asset_data;
lib->GetAssetDataList(asset_data);
TArray<UClass*> result;
for (int32 i = 0; i < asset_data.Num(); i++)
{
FString filepath(asset_data[i].GetExportTextName());
FStringAssetReference asset_stream_ref(filepath);
TAssetPtr<UBlueprint> asset(asset_stream_ref);
UBlueprint* bp = asset.LoadSynchronous();
if(bp)
{
result.Add(bp->GeneratedClass);
}
}
return result;
}
通过蓝图文件路径创建物体