디버그 드로잉 기능을 사용하려면 소스 상단에 DrawDebugHelpers.h 헤어를 추가해야 한다. 이 헤더에는 다양한 그리는 함수들이 선언돼 있다. 그 중에서 캡슐 모양을 그리는 기능인 DrawDebugCapsule()함수를 사용하여 탐색을 위해 원이 움직인 궤적을 표현해본다.
캡슐의 반지름을 설정하고 탐색 시작 위치에서 끝 위치로 향하는 벡터를 구한 후, 벡터의 중점 위치와 벡터 길이의 절반을 대입하면 우리가 원하는 크기의 캡슐 모양을 구할 수 있다. 캡슐 방향을 회전시키려면 회전 행렬을 적용하면 된다. 캡슐을 캐릭터 시선 방향과 일치하게 회전시키려면 FRotationMatrix 의 MakeFromZ함수에 캐릭터의 시선 방향 벡터를 입력해 필요한 회전 좌표축을 생성할 수 있다.
#if ENABLE_DRAW_DEBUG
FVector TraceVec = GetActorForwardVector() * AttackRange;
FVector Center = GetActorLocation() + TraceVec * 0.5f;
float HalfHeight = AttackRange * 0.5f + AttackRadius;
FQuat CapsuleRot = FRotationMatrix::MakeFromZ(TraceVec).ToQuat();//캡슐의 Z벡터를 캐릭터 시선방향으로 회전.
FColor DrawColor = bResult ? FColor::Green : FColor::Red;
float DebugLifeTime = 5.0f;
DrawDebugCapsule //DrawDebugHelpers에서 제공하는 캡슐그리기 함수.
(
GetWorld(),//그릴월드
Center,//위치
HalfHeight,//캡슐길이
AttackRadius,//반지름
CapsuleRot,//캡슐회전
DrawColor, //색깔
false,//지속여부
DebugLifeTime //지속시간
);
#endif
'UE4' 카테고리의 다른 글
[UE4] 마우스휠로 카메라 줌(Zoom)기능 구현하기 (0) | 2022.10.21 |
---|---|
[UE4] 데미지 프레임워크 (0) | 2022.10.21 |
[UE4] 가비지 컬렉션(Garbage Collection) (0) | 2022.10.20 |
[UE4] 물리엔진 (0) | 2022.10.20 |
[UE4] 델리게이트(Delegate) (0) | 2022.10.19 |