This gives me assets but totally unrelated to what Reference view in the editor would give.
void UTechDesignLibrary::AddReferencedMontages(const UObject\* InObject,
const IAssetRegistry& AssetRegistry, TSet<TSoftObjectPtr>& OutMontages)
{
#if WITH_EDITOR
// Find all assets that reference this behavior
TArray ReferencedAssets;
UE::AssetRegistry::EDependencyQuery QueryFlags =
UE::AssetRegistry::EDependencyQuery::Hard |
UE::AssetRegistry::EDependencyQuery::Soft |
UE::AssetRegistry::EDependencyQuery::Direct |
UE::AssetRegistry::EDependencyQuery::Indirect;
AssetRegistry.GetDependencies(InObject->GetOutermost()->GetFName(),
ReferencedAssets, UE::AssetRegistry::EDependencyCategory::All, QueryFlags);
for (const FName& PackageName : ReferencedAssets)
{
TArray<FAssetData> AssetsData;
AssetRegistry.GetAssetsByPackageName(PackageName,AssetsData);
for (const FAssetData& Asset : AssetsData)
{
if (Asset.IsInstanceOf(UAnimMontage::StaticClass()))
{
OutMontages.Add(TSoftObjectPtr<UAnimMontage>(Asset.GetSoftObjectPath()));
}
}
}
#endif
}