void URealisWidget::StartLoad() { FString TempString; FString UselessString; //(头文件中:UTexture2D* FirstTexture;)在蓝图中设定FirstTexture的值,目的是找它的地址,从而推断出其它资源地址 if (FirstTexture) { //找地址 UKismetStringLibrary::Split(FirstTexture->GetPathName(), "/", TempString, UselessString, ESearchCase::IgnoreCase, ESearchDir::FromEnd); } FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked <FAssetRegistryModule>("AssetRegistry"); FARFilter Filter; //这里要找的资源是UTexture2D Filter.ClassNames.Add(UTexture2D::StaticClass()->GetFName()); FName NewTexturePath = FName(*TempString); //这里输入地址,可根据需要自行填写 Filter.PackagePaths.Add(NewTexturePath); TArray<FAssetData> MyAssetData; AssetRegistryModule.Get().GetAssets(Filter, MyAssetData); //使用例子 TArray<UTexture2D*> ResultData; for (FAssetData i : MyAssetData) { ResultData.AddUnique((UTexture2D*)i.GetAsset()); } }
https://docs.unrealengine.com/4.27/zh-CN/ProgrammingAndScripting/ProgrammingWithCPP/Assets/Registry/