[언리얼엔진5 입문] 37. FString 타입 로그 출력

ASP·2024년 4월 5일
0

언리얼엔진5 입문

목록 보기
37/41
post-thumbnail

문자열 타입 FString 를 사용하여 로그에 출력

위와 같이 작성하고 실행이 제대로 되면 좋겠지만, 컴파일 에러가 발생함.

그 이유는, UE_LOG 함수는 인자로 FString 타입을 사용할 수 없음.

따라서 *MyString 으로 써줌으로써 FString 타입을 TCHAR* 타입으로 변환하고 UE_LOG 매크로의 인자로 전달함.

FString MyString = "My String value";

라는 문장에서 "My String Value" 값은 엄밀히 말하면 TCHAR 타입의 문자열임.

그리고 TCHAR 타입은 UE_LOG 매크로의 인자로 사용 가능하므로 FString 타입을 TCHAR 타입으로 변환해줘야 함.

따라서 역참조 *MyString 을 사용해 CHAR* MyString = "My String Value";
로 변환시켜주고 TCHAR 타입의 배열인 "My String Value"를 매크로의 인자로 전달.


그러나 위의 코드는 유용한 편은 아님.

MyString 변수에 값을 이미 정해진 값을 할당한 것이므로 그냥 TEXT 함수 안에 전부 다 작성할 수 있음.

그렇다면 변수는 왜 사용하는 것일까?

그 이유는 정해진 값이 아닌, 동적인 값을 할당할 수 있기 때문.

GetName 함수는 움직이는 플랫폼 액터의 이름을 리턴함.

게임플레이 후 로그를 보면 이처럼 지금 레벨에 배치한 플랫폼 5개 액터의 이름이 출력되는 것을 확인할 수 있음.

해당 내용을 이용하여 오버슈팅된 액터의 이름을 출력하고 해당 액터가 얼마나 오버슈팅했는지 거리를 출력함.

그러나 위처럼 작성하고 실행시, OutPut Log에서 한글이 깨지는 것을 확인할 수 있음.

이는 cpp 파일의 인코딩 방식 때문임.

cpp 파일에선 한글 텍스트일지라도, 실행파일인 바이너리 파일로 변환하면 결국 전부 0과 1로 구성된 숫자임.

따라서 한글과 같은 문자열을 이진 숫자로 제대로 표현할 수 있는 인코딩하는 방식을 정해줘야 함.

비주얼 스튜디오 > cpp 파일 다른 이름으로 저장 > 인코딩 방식 UTF-8 로 저장.

실행하면 한글이 깨지지 않고 제대로 출력되는 것을 확인할 수 있음.

profile
언리얼엔진 개발자의 길

0개의 댓글