Help! How to set texture using SetTextureParameterValue?

I want to set the new texture in this 2D parameter for MaskShirt.

DynMaterial->SetTextureParameterValue(FName(TEXT("MaskShirt")), NewTexture);

Error:

Your DynMaterial pointer is null, make sure to initialize it first with DynMaterial = UMaterialInstanceDynamic::Create()

1 Like

its already done, and working fine , but when accessing the parameter to change its texture , it is returning null.

1 Like
	static ConstructorHelpers::FObjectFinder<UMaterialInterface>Material_B(TEXT("/Game/Assets/Characters/FCharacter/Char_01/DynMaterials/DM_FB_01.DM_FB_01"));
	if (Material_B.Succeeded())
	{
		ParentMaterial_Body = Material_B.Object;
	}
	if (MainMesh != nullptr)
	{
		Material_BodyRef = UMaterialInstanceDynamic::Create(ParentMaterial_Body, MainMesh);
		MainMesh->SetMaterial(3, Material_BodyRef);
		print("SUCCESS Body Material : ID (0)");
	}
	else
	{
		print("FAILED : Body Material : ID (0)");
	}

But this Always return Null Pointer:

if (::IsValid(Material_BodyRef))
{
	MeshBody->SetSkeletalMesh(SKM_Empty);
	MeshJacket->SetSkeletalMesh(SKM);
	Material_BodyRef->UMaterialInstanceDynamic::SetTextureParameterValue
	(FName(TEXT("Mask Shirt")), T_MaskJacket);
		print("Mask Sets UP Successfully");
		return;
	}
	else
	{
	print("Material_BodyRef is NULL POINTER");
}