voidFEditorModeTestEdModeToolkit::InitListViewMaterialData() // 初始化材质列表
{
if (MaterialListviewDataSource.Num() > 0)
{
return;
}
// 搜索指定的材质目录
FString searchPath = FPaths::GameContentDir() / MATERIAL_PATH;
FString packName = FPackageName::PackageFromPath(*searchPath);
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>(TEXT("AssetRegistry"));
IAssetRegistry& assetRegistry = AssetRegistryModule.Get();
FARFilter Filter;
Filter.PackagePaths.Add(*packName);
Filter.bRecursivePaths = true;
TArray<FAssetData> assetDataArrs;
int i = 0;
bool bRet = assetRegistry.GetAssets(Filter, assetDataArrs);
if (bRet)
{
for (FAssetData data : assetDataArrs)
{
if (data.GetClass() == UMaterial::StaticClass())
{
FTemplateItem templateItem;
//texture name
templateItem.textContent = FString::FromInt(++i);
//image
FSlateBrush* brush = ImageHelper::LoadImageFromDisk(FString("C:/Users/Guju/Pictures/lovewallpaper/96058-106.jpg"), FVector2D(imageWith, imageHeight));
TSharedPtr<FSlateBrush> brushPtr(brush);
templateItem._bkimageBrush = brushPtr;
templateItem.AssetData = data;
//TSharedPtr<FTemplateItem> ptrItem = MakeShareable(new FTemplateItem(data, TOptional<int32>()));
TSharedPtr<FTemplateItem> ptrItem = MakeShared<FTemplateItem>(templateItem);
MaterialListviewDataSource.Add(ptrItem);
}
}
}
}