본문 바로가기
Unreal Engine

Unreal Engine 텍스트 기반 변수 유형: Text, String, Name

by hfgraphic 2025. 10. 13.
반응형

 

텍스트 기반 변수 유형: Text, String, Name

 

우리가 이야기할 다음 세 가지 변수 유형은 Text (텍스트) 변수, String (문자열) 변수, 그리고 Name (이름) 변수입니다.

 

1. Text (텍스트) 변수

  1. 변수 생성: **'GameOverMessage'**라는 텍스트 변수를 만들겠습니다. (이것은 플레이어가 죽었을 때 표시되는 메시지입니다.)
  2. 유형 설정: 변수 유형을 **Text (텍스트)**로 변경합니다.
  3. 값 설정: Ctrl 키를 누른 채 드래그하여 변수를 가져오고 **Compile (컴파일)**을 클릭하여 값을 추가합니다.
  4. 기본 값: 기본 값으로 **"You have died. (당신은 죽었습니다.)"**와 같은 문구를 입력합니다.
  5. 출력하기:텍스트 변수Print String 노드에 연결하면 자동으로 문자열로 변환됩니다. Compile하고 Play를 클릭하면 왼쪽 상단에 **"You have died."**가 표시됩니다.

 

2. String (문자열) 변수

  1. 변수 생성: 다음으로 String (문자열) 변수를 만들고 이름을 **'ServerName'**이라고 하겠습니다. 유형은 String을 선택합니다.
  2. 값 설정: Compile하고 서버 이름을 **"Mustafa's Server (무스타파의 서버)"**와 같이 설정합니다.
  3. 출력하기:문자열 변수Print String에 연결하면, 이 둘은 모두 문자열 유형이므로 변환 과정 없이 바로 연결됩니다. Compile하고 Play를 클릭하면 **"Mustafa's Server"**가 표시됩니다.

 

3. Name (이름) 변수

  1. 변수 생성: 마지막으로 Name (이름) 변수를 만들고 이름을 **'WeaponName'**이라고 하겠습니다. 유형은 Name을 선택합니다.
  2. 값 설정: Compile을 클릭하고 여기에 텍스트를 입력할 수 있습니다. 예를 들어, 슈팅 게임이라면 무기 이름인 **"AK-47"**을 입력합니다.
  3. 출력하기: Print String에 연결하면 자동으로 문자열로 변환됩니다. Compile하고 Play를 클릭하면 **"AK-47"**이 표시됩니다.

Text, String, Name의 주요 차이점

변수 유형
주요 특징
메모리 사용량
조작 가능성
주요 용도
Text
지역화(Localization) 가능
가장 높음
가능 (게임 중 변경 가능)
번역이 필요한 UI 메시지 (예: 게임 오버 메시지)
String
일반 텍스트, 지역화 불가
중간
가능 (게임 중 변경 가능)
번역이 필요 없고 조작이 필요한 텍스트 (예: 서버 이름)
Name
고유 식별자, 지역화/조작 불가
가장 낮음
불가 (고정값)
변경되지 않는 고유한 ID (예: 무기 이름, 업적 ID)

1. 지역화 (Localization) 및 메모리

 

  • Text (텍스트): 가장 많은 메모리를 사용하며, **지역화(Localizable)**가 가능합니다.
  • 지역화란 텍스트 라인을 다른 언어로 번역하는 것입니다. 게임을 영어뿐만 아니라 독일어, 중국어, 일본어 등으로 번역하고 싶다면, 이 게임 오버 메시지도 해당 언어로 번역해야 합니다.
  • Text 변수만이 엔진에서 번역될 수 있습니다. 텍스트 라인을 작성할 때 번역이 필요한지 고려해야 하며, 필요하다면 Text 변수를 사용해야 합니다.
  • String (문자열): 중간 정도의 메모리를 사용하며, 번역이 불가능합니다.
  • String은 번역이 필요 없는 텍스트에 사용될 수 있습니다. 예를 들어, 서버 이름은 다른 언어로 번역할 필요가 없으므로 String 변수를 사용하면 됩니다. 게임 전체가 번역될 필요가 없다면, Game Over Message를 작성하는 데 String을 사용할 수도 있습니다.

 

2. 조작 (Manipulation) 가능성

 

  • Text 및 String: 이 두 변수는 게임 실행 중 **조작(manipulated)**될 수 있습니다.
  • 예를 들어, String 변수에서 선을 당겨 'Append (추가)' 노드를 사용하면 기존 텍스트에 더 많은 텍스트를 추가할 수 있습니다. (**"Mustafa's Server"**에 **"Number 1"**을 추가하여 **"Mustafa's Server Number 1"**을 만들 수 있습니다.)
  • Name (이름): 이 변수는 조작될 수 없습니다. **고유(Unique)**한 값으로만 존재합니다.
  • Name 변수는 이 셋 중 가장 적은 메모리를 사용하며, 절대 변경되지 않을 고유한 것에만 사용해야 합니다.
  • 예를 들어, 무기 이름은 항상 AK-47로 고정되어 변경되지 않을 것이므로, Name 변수를 사용합니다.
  • 또한, 게임 내 **업적(achievements)**이 있고 이 업적에 ID를 부여하고 싶을 때 (예: 'ACH_07'과 같이 변경되지 않는 ID), Name 변수를 사용할 수 있습니다.

 

이것이 바로 텍스트 변수들입니다. 세 가지 모두 텍스트를 작성할 수 있지만, 위에서 언급된 차이점들을 이해하고 사용해야 합니다.

 

반응형