I’m trying to programmatically assign a material instance to a UStaticMesh.
UStaticMesh* staticMesh = LoadObject<UStaticMesh>(nullptr, TEXT("/Game/testMesh"));
UMaterialInstanceDynamic* mInstance = LoadObject<UMaterialInstanceDynamic>(nullptr, TEXT("/Game/testMaterial"));
FName materialName = "testMaterial";
UStaticMeshComponent* meshComponent = NewObject<UStaticMeshComponent>();
meshComponent->SetStaticMesh(staticMesh);
meshComponent->SetMaterialByName(materialName, mInstance);
When I run this, it just leaves the default material (WorldGridMaterial) assigned to each slot. I’ve checked that the staticmesh and material instance load in properly, but it still doesn’t work. Any advice?