본문 바로가기
언리얼/기능, 팁 등등 노트

[UE4]데칼 생성(스폰)(코드)

by 개발펭귄 2018. 11. 13.

캐릭터가 공격할 때 공격 범위를 데칼로 표현해주고 싶었다.



데칼이 표면에 제대로 출력될 수 있도록 데칼의 사이즈와 Rotation 값을 잘 설정해주어야 한다.



데칼은 캐릭터에 하나 둬서 사이즈를 변경해가면서 써도 되지만


언리얼 엔진 특성상 FadeOut을 하면 사라지고 나서 Destroy되어 그냥 Spawn 시켜서 사용해보았다.


데칼생성은 UGameplayStatics의 SpawnDecalAtLocation을 이용하면 된다.


예제


1
2
3
4
5
6
7
8
9
10
11
12
    FVector NewSize = FVector(64.0f, 80.0f, 64.0f);
    float BoxSize = AttackRangeBox->GetScaledBoxExtent().Y;
    FVector NewLocation = GetActorLocation() + GetActorForwardVector() * BoxSize;
 
    AttackRangeBox->SetBoxExtent(NewSize);
    AttackRangeBox->SetWorldLocation(NewLocation);
    
    //Draw RangeDecal
    NewSize.Z = 100.0f;
    FRotator NewRotator = AttackRangeBox->GetComponentRotation();
    auto RangeDecal = UGameplayStatics::SpawnDecalAtLocation(this, RangeDecalMaterial, NewSize, NewLocation, NewRotator, 0.0f);
    RangeDecal->SetFadeOut(0.0f, 1.0f);
cs