虚幻4加载大批资源的方式有几个ObjectLibray和AssetRegistry。
下面的代码直接粘贴进代码,包含好头文件就能起效(引擎版本4.19)
https://docs.unrealengine.com/en-us/Programming/Assets/Registry
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>("AssetRegistry");
TArray<FAssetData> MaterialList;
const UClass* Class = UMaterialInterface::StaticClass();
FName ClassFName = Class->GetFName();
//AssetRegistryModule.Get().GetAssetsByClass(ClassFName, AssetData, true);
FARFilter filter;
filter.ClassNames.Add(ClassFName);
filter.PackagePaths.Add(FName("/Game"));
filter.bRecursiveClasses = true;
AssetRegistryModule.Get().GetAssets(filter, MaterialList);
这个东西还是很好用的,注意路径的填写和Filter的填写。如果是加载StaticMesh则不需要filter.bRecursiveClasses = true也能跑(就像文档中那样)。如果是加载像我这样的类,就必须设置了。加载之后资源会被存到MaterialList里。可以通过filter控制筛选的文件夹和筛选资源的类型。