DrawDebugLine에서 사용 중으로, raycast 정보를 시각적으로 표현해준다.DrawDebugLine은 선의 시작점과 끝점을 월드 좌표로 받으므로, 기존의 버텍스 쉐이더(오브젝트 스페이스의 정점 정보를 다룸)와 호환되지 않기 때문에 별도의 쉐이더를 사용한다.UWorld::DrawDebugLine을 통해 원하는 월드 위치에 라인을 추가할 수 있다.// UWorld.h
public:
void DrawDebugLine(FVector Start, FVector End, FVector Color, float Time) const;
URender의 DebugLines 배열에서 디버그 라인의 시작점, 끝점, 색상, 지속 시간 정보를 다룬다.// URenderer.h
private:
// Debug Line
struct FDebugLineInfo
{
FVector Start;
FVector End;
FVector Color;
float Time;
};
TArray<FDebugLineInfo> DebugLines;
uint32 DebugLineCurrentMaxNum현재 버텍스 버퍼에 담을 수 있는 디버그 라인의 최대 개수.
*uint32* DebugLineNumStep버텍스 버퍼 크기 조정 단계.
URenderer::UpdateDebugLines파라미터로 전달 받은 DeltaTime을 통해 배열에 있는 현재 라인들의 지속 시간을 줄이고, 지속 시간이 0 이하가 되면 배열에서 삭제한다.
*URenderer*::*AdjustDebugLineVertexBuffer*