캐릭터가 공격할 때 공격 범위를 데칼로 표현해주고 싶었다.
데칼이 표면에 제대로 출력될 수 있도록 데칼의 사이즈와 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 |
'언리얼 > 기능, 팁 등등 노트' 카테고리의 다른 글
[UE4]enum을 string으로(C++) (0) | 2018.11.24 |
---|---|
[UE4]코드 상에서 머티리얼 로드 (0) | 2018.11.13 |
[UE4]캐릭터의 이동 및 회전 보간(마우스 클릭, TopdownView) (0) | 2018.10.25 |
[UE4]캐릭터의 속도 계산 (0) | 2018.08.10 |
[UE4]월드 안의 액터 혹은 오브젝트 읽기 (0) | 2018.08.09 |