第一种方式:
1、首先加载材质,代码如下:
UMaterialInterface* Material = LoadObject<UMaterialInterface>(nullptr, TEXT("Material'/Game/Materials/ColorMaterial.ColorMaterial'"));
2、然后调用CreateDynamicMaterialInstance创建静态材质实例,如下:
UMaterialInstance * DynamicMaterial = UKismetMaterialLibrary::CreateDynamicMaterialInstance(GetWorld(), Material);
3、最后设置材质,如:
XXXXX->SetMaterial(0, DynamicMaterial);
第二种方式:
首先加载材质,如:
static ConstructorHelpers::FObjectFinder<UMaterialInstance> MaterialObj(TEXT("/Game/Materials/ColorMaterial.ColorMaterial"));
// DynamicMaterial = MaterialObj.Object;//可以赋值保存下来
直接设置材质,
XXXXX->SetMaterial(0, MaterialObj.Object);
第三种方式:
首先加载材质,如:
static ConstructorHelpers::FObjectFinder<UMaterialInstance> MaterialObj(TEXT("/Game/Materials/ColorMaterial.ColorMaterial"));
然后使用CreateDynamicMaterialInstance创建材质实例,如:
UMaterialInstance * DynamicMaterial = UKismetMaterialLibrary::CreateDynamicMaterialInstance(GetWorld(), MaterialObj.Object);
最后设置材质,给component设置材质实例,如:
XXXXX->SetMaterial(0, DynamicMaterial);
如果多个材质进行切换,可以保存不同的实例进行动态切换材质文章来源:https://www.toymoban.com/news/detail-473499.html
高级技术交流群: 769397359文章来源地址https://www.toymoban.com/news/detail-473499.html
到了这里,关于UE4中C++动态创建材质的几种方法Material的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!