UE4中C++动态创建材质的几种方法Material

第一种方式:

        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);

        如果多个材质进行切换,可以保存不同的实例进行动态切换材质

猜你喜欢

转载自blog.csdn.net/u013007305/article/details/129985574