Hello,
I’m trying to spawn decals under my characters as team markers. The decals are correctly spawned with C++ using default values, however the compilation instantly crashes the editor when I attempt to modify the VectorParameterValue (same with scalar parameters.)
As for my code :
.h
public:
ACharacterUnit();
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = CharacterTeamMarker)
bool bCharacterTeam1;
private:
UPROPERTY()
class UMaterialInstanceDynamic* TeamMarkerDynamic;
UPROPERTY()
FLinearColor TeamMarkerColor;
.cpp
ACharacterUnit::ACharacterUnit() {
static ConstructorHelpers::FObjectFinder<UMaterial> TeamMarkerMaterial(TEXT("Material'/Game/CharacterUnit/TeamMarker/MAT_TeamMarker.MAT_TeamMarker'"));
if (TeamMarkerMaterial.Object)
{
TeamMarkerDynamic = (UMaterialInstanceDynamic*) (TeamMarkerMaterial.Object);
/*Crashes here*/TeamMarkerDynamic->SetVectorParameterValue(FName("TeamMarkerColor"), FLinearColor(100.f, 0.f, 0.f));
}
}
void ACharacterUnit::BeginPlay() {
Super::BeginPlay();
UGameplayStatics::SpawnDecalAttached(TeamMarkerDynamic, FVector(100.0f, 100.0f, 100.0f), GetRootComponent(),FName(""), GetActorLocation(), FRotator(-90.f, -90.f, 0.f), EAttachLocation::Type(1));
}