Perhaps you can try something like this
Have an in-line function for materials
template <typename ObjClass>
static FORCEINLINE ObjClass* LoadObjFromPath(const FName& Path)
{
if (Path == NAME_None) return nullptr;
return Cast<ObjClass>(StaticLoadObject(ObjClass::StaticClass(), nullptr, *Path.ToString()));
}
static FORCEINLINE UMaterial* LoadMaterialFromPath(const FName& Path)
{
if (Path == NAME_None) return nullptr;
return LoadObjFromPath<UMaterial>(Path);
}
And call it like this at runtime
FString sPath = "/Game/Materials/YourMat";
UMaterial* mat = LoadMaterialFromPath(FName(*sPath));