how do I get all registered classes?

This code will give you a list of all assets of a specific class.
But how do i get a list of all registered classes to insert into a filter combo box for example.

FAssetRegistryModule& AssetRegistryModule =
FModuleManager::LoadModuleChecked<FAssetRegistryModule>("AssetRegistry");

TArray<FAssetData> AssetData;
IAssetRegistry& AssetRegistry = AssetRegistryModule.Get();
AssetRegistry.GetAssetsByClass(FName("MaterialFunction"), AssetData);

for (auto& Item : AssetData)
{
}

Sure, i could call “.GetAllAssets” instead and build a list with all the classes i find myself.

AssetRegistry.GetAllAssets(AssetData);

for (auto& Item : AssetData)
{
   Item.AssetClassPath.ToString().
}

But is there a global unreal function that does this task as well?

Easy solution:

TArray<FString> GetRegisteredClasses()
{
	TArray<FString> List;

	FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>("AssetRegistry");

	TArray<FAssetData> AssetData;
	IAssetRegistry& AssetRegistry = AssetRegistryModule.Get();
	AssetRegistry.GetAllAssets(AssetData);

	for (auto& Item : AssetData)
	{
		FString Filter = Item.AssetClassPath.ToString();

		int i;
		Filter.FindLastChar(TEXT('.'), i);
		Filter = Filter.RightChop(i+1);

		if (List.Contains(Filter) == false)
		{
			List.Add(Filter);
		}
	}

	List.Sort();
	return List;
}

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.