solved
TArray<UTexture*> textures;
FString xx;
FString name_D = "_D";
UTexture * tex_D;
if (mat->GetTextureParameterValue("Diffuse", tex_D))
{
name_D = tex_D->GetName();
}
else
{
name_D = (mat->GetMaterial()->GetBaseMaterial()->BaseColor.Expression->GetReferencedTexture()->GetName());
}
mat->GetBaseMaterial()->GetBaseMaterial()->GetUsedTextures(textures, EMaterialQualityLevel::High, true, ERHIFeatureLevel::Type::ES2, true);
mat->GetBaseMaterial()->GetBaseMaterial()->GetUsedTextures(textures, EMaterialQualityLevel::High, true, ERHIFeatureLevel::Type::ES3_1, true);
mat->GetBaseMaterial()->GetBaseMaterial()->GetUsedTextures(textures, EMaterialQualityLevel::High, true, ERHIFeatureLevel::Type::Num, true);
mat->GetBaseMaterial()->GetBaseMaterial()->GetUsedTextures(textures, EMaterialQualityLevel::High, true, ERHIFeatureLevel::Type::SM4, true);
mat->GetBaseMaterial()->GetBaseMaterial()->GetUsedTextures(textures, EMaterialQualityLevel::High, true, ERHIFeatureLevel::Type::SM5, true);
if (textures.Num() > 0)
{
FString NumX;
NumX = FString::FromInt(textures.Num());
for (UTexture* tex : textures)
{
FString sID = tex->GetName();
if (tex->GetName()==name_D)
{
//now the tex is the Diffuse texture
}
}
}