UE4

[UE4] 디버그 드로잉(Debug Drawing)

Honey Badger 2022. 10. 20. 22:05

 디버그 드로잉 기능을 사용하려면 소스 상단에 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