UE4用CPP写材质函数例子
时间: 2024-03-23 07:36:28 浏览: 72
下面是一个简单的用CPP写材质函数的例子:
```
// 在.h文件中声明材质函数
UFUNCTION(BlueprintPure, Category = "MyMaterial")
static UMaterialInterface* CreateMyMaterial(float SpecularPower, FLinearColor BaseColor);
// 在.cpp文件中实现材质函数
UMaterialInterface* UMyClass::CreateMyMaterial(float SpecularPower, FLinearColor BaseColor)
{
UMaterialInstanceDynamic* DynMaterial = UMaterialInstanceDynamic::Create(BaseMaterial, nullptr);
DynMaterial->SetScalarParameterValue("SpecularPower", SpecularPower);
DynMaterial->SetVectorParameterValue("BaseColor", BaseColor);
return DynMaterial;
}
```
在上面的例子中,我们通过声明一个BlueprintPure的静态函数CreateMyMaterial来创建一个材质实例。在函数实现中,我们使用UMaterialInstanceDynamic类来创建一个动态材质实例,然后设置其材质参数(SpecularPower和BaseColor),最后将其返回。
需要注意的是,BaseMaterial是一个UMaterialInterface类型的指针,表示我们要基于哪个材质模板来创建动态材质实例。在使用该函数之前,需要先加载该材质模板。
阅读全文