언리얼 엔진 5

언리얼엔진5 C++로 정복하기(1) 디버그

Voitcon 2024. 1. 16. 13:15

프로그래밍에서 가장 중요한 디버깅 

언리얼 C++로 알아봅시다.

유니티에서 Debug.log로 콘솔창에 로그를 뛰운것처럼 언리얼엔진에서도 콘솔창에 로그를 뛰울 수 있다.

 

액터로 cpp파일을 생성하여 비주얼 스튜디오를 켜보자

언리얼에서는 UE_LOG로 로그를 찍어볼 수 있다.

두번째 매개변수는 콘솔창에 뛰우는 종류를 설정할 수 있는데, Display, Warning 등 여러가지가 존재한다.

개인적으로 Warning이 색 때문에 잘 보여서 자주 애용하는거 같다.

 

작성한 코드를 컴파일후에 블루프린트 클래스로 만들어준다. (유니티의 프리팹 느낌)

만들어진 블루프린트 클래스를 월드에 배치한후에 실행해보면

 

 

이런식으로 콘솔창에 로그가 뛰어집니다.

 

그다음 로그가 아닌 월드에 디버그 그림을 그려봅시다.

언리얼에서는 DrawDebugLine , DrawDebugSphere,DrawDebugPoint 세가지가 자주 쓰이는데,

틱함수에 이런식으로 작성을 해보면

이런식으로 그림이 그려질 겁니다.

DrawDebugLine(GetWorld(), GetActorLocation(), (GetActorLocation() + (GetActorForwardVector() * 150)), FColor::Blue, true,1.f,0,10.f); 

이 함수는 현재의 월드에서, 현재의 액터 위치에서 액터 위치 + 전방벡터*150cm만큼 까지 파란색으로 true(영구적인 선), 1.f(원래 디버그 선의 유효 생존 시간인데 전에 true로하면 딱히 숫자를 기입안해도 됩니다. 그리고 우선순위 0 , 마지막으로 선의 두께 10으로 설정한 것입니다.

DrawDebugSphere(GetWorld(), GetActorLocation(), 50.f, 12, FColor::Red, true);

구를 그리는 함수인데 현재 월드에서, 액터의 위치가 중앙으로, 반지름은 50.f, 원의 세그먼트는 12개 색을 빨간색으로 영구적으로 선을 그린다는 것입니다.

DrawDebugPoint(GetWorld(), (GetActorLocation() + (GetActorForwardVector() * 150)), 50,FColor::Green, true);

이 함수는 현재의 월드에서 액터의 현재위치에서 전방백터*150만큼의 위치에 50의 크기에 초록색으로 영구적으로 점을 표시한다는 함수입니다.

 

대략적인 디버그 포스팅이 끝났습니다.!

다음에는 액터 로케이션으로 찾아뵙겠습니다.