蓝图方式:

使用StarterContent中的椅子作为演示示例的模型:

1, 创建一个空的Actor蓝图,命名为RandomChair:

2,打开蓝图

并将椅子的StaticMesh拖放的到根节点内:

3,在该蓝图内创建一个box,命名为Box1,用于检测碰撞时使用:

4,将这个蓝图拖放到场景中:

5,添加蓝图脚本

现在构造函数中创建一个材质示例,并命名为DynamicMetarial

然后再添加Box1的碰撞事件函数

全部逻辑为:

每当靠近这个椅子时,椅子的颜色就会随机变化一次。

其中的参数名:ColorSeats,是在Chair的材质中定义的可编辑参数:

C++方式:

MaterialInstanceDynamic.h

void SetVectorParameterValue(FName ParameterName, FLinearColor Value);

bool SetScalarParameterValue(FName ParameterName,, float Value);

void SetTextureParameterValue(FName ParameterName, class UTexture* Value);

void SetFontParameterValue(const FMaterialParameterInfo& ParameterInfo, class UFont* FontValue, int32 FontPage);

void ClearParameterValuesInternal();