🎮문자열 사용

⚙️TEXT() 매크로

언리얼에서 문자열 리터럴을 사용할 때 TEXT() 매크로를 사용해야 한다. 문자열을 여러 플랫폼에 대응하기 위해 사용된다.

1
2
3
4
5
6
7
8
9
10
11
#include "BullCowCartridge.h"

void UBullCowCartridge::BeginPlay() // When the game starts
{
    Super::BeginPlay();

// PrintLine은 터미널에 문자열을 출력하기 위한 함수로서 
// 강의에서 만들어 놓은 함수이고
// 언리얼에서 제공하는 함수가 아니다.
    PrintLine(TEXT("Bulls and Cows"));
}


PrintLine 함수 인자로 TEXT 매크로에 감싼 문자열을 넘겨주고 함수를 호출하면 아래와 같이 터미널에 문자열이 출력되는 것을 확인할 수 있다.

TerminalString


⚙️FString

언리얼에서는 C++에서 문자열 변수를 선언하기 위해 사용했던 string 타입 대신 FString을 사용한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
#include "BullCowCartridge.h"

void UBullCowCartridge::BeginPlay() // When the game starts
{
    Super::BeginPlay();

    FString HiddenWord = TEXT("Bulls");

    // 사용자 지정 함수 PrintLine()에
    // FString::Printf가 포함되어 있어서 생략 가능
    PrintLine(FString::Printf(TEXT("The Hidden Word is: %s"),  *HiddenWord));
    PrintLine(TEXT("The Hidden Word is: %s"), *HiddenWord);
}


변수 HiddenWord에 담겨있는 Bulls가 정상적으로 출력되는 것을 볼 수 있다.

FString


FString 클래스의 Printf 함수를 사용하여 문자열 변수를 출력하고자 할 때 C언어의 표준 출력 함수인 printf() 함수를 사용하는 것 처럼 출력 양식과 출력 양식 변환기호를 사용해야 한다.

1
2
3
4
5
6
FString Word = TEXT("word");
int32 num = 1; // int 대신 int32 사용

FString::Printf(TEXT("문자열: %s, 정수: %i"), *Word, num);
// FString::Len() 함수로 문자열의 길이를 알 수 있다.
FString::Printf(TEXT("문자열 길이: %i"), Word.Len());



Leave a comment