ChatGPT 답변내용.
언리얼 엔진에서 Name, Text, 그리고 String은 모두 문자열 데이터를 다루는 데 사용되지만, 각각의 목적과 특성이 다릅니다. 아래는 세 가지의 주요 차이점입니다:
1. Name
- 설명: Name은 경량 문자열로, 주로 고정된 이름이나 식별자로 사용됩니다. 언리얼 엔진 내부적으로 해싱(hash)된 형태로 처리되어 빠르고 효율적인 비교가 가능하도록 설계되었습니다.
- 특징:
- 불변성: 한 번 생성되면 수정이 불가능합니다.
- 비교 연산이 매우 빠릅니다.
- 메모리 사용량이 적습니다.
- 언리얼 엔진의 Tag, Socket Name, Animation Name 등에서 주로 사용됩니다.
- 사용 사례:
- 객체 이름이나 키값으로 사용.
- ex: FName("Player"), FName("Health").
2. Text
- 설명: Text는 **로컬라이제이션(다국어 지원)**을 고려한 문자열입니다. 주로 화면에 표시되는 UI 텍스트나 다국어 번역이 필요한 문자열에 사용됩니다.
- 특징:
- 로컬라이제이션 시스템과 통합되어 다국어 지원이 가능합니다.
- 메모리 사용량은 상대적으로 높습니다.
- UI에 표시되는 텍스트에 적합합니다.
- 동적으로 생성된 텍스트를 관리할 수 있습니다.
- 사용 사례:
- HUD, UI 메시지, 다국어 텍스트.
- ex: FText::FromString("Hello World").
3. String
- 설명: String은 가변 문자열로, 일반적인 문자열 데이터 처리에 사용됩니다. C++의 std::string과 유사하며, 읽기와 쓰기 모두 가능합니다.
- 특징:
- 수정 가능한 문자열입니다.
- 동적인 문자열 처리가 가능합니다.
- 메모리 사용량은 Name보다 높지만, Text보다는 적습니다.
- 로컬라이제이션 지원이 없으며 비교 연산이 상대적으로 느립니다.
- 사용 사례:
- 임시 데이터 처리, 파일 경로, 디버깅 로그.
- ex: FString("PlayerName").
차이점 요약
특성NameTextString
목적 | 고정된 이름/식별자 | 다국어 지원 텍스트 | 동적 문자열 데이터 |
가변성 | 불변 | 불변 | 가변 |
로컬라이제이션 | 지원하지 않음 | 지원 | 지원하지 않음 |
성능 | 빠름 (해시 기반 비교) | 느림 (복잡한 구조) | 중간 (직접 비교) |
메모리 | 적음 | 높음 | 중간 |
사용 사례 | 태그, 이름, 키 | UI 텍스트, 메시지 | 파일 경로, 디버깅 정보 |
어떤 것을 사용할지 선택하는 기준
- 효율성 및 고정된 이름: Name
(예: 태그, 식별자, 고정된 값) - UI 및 다국어 지원: Text
(예: HUD 메시지, 사용자 인터페이스) - 동적 문자열 조작: String
(예: 파일 경로, 로그 출력)
필요에 따라 적합한 타입을 선택해 사용하는 것이 성능과 관리 측면에서 유리합니다!
'개발 > 언리얼 Unreal' 카테고리의 다른 글
UE5 / Dot Product (0) | 2025.02.04 |
---|---|
UE5 / Object Reference, Class Reference, Soft Object Reference, Soft Class Reference (0) | 2025.02.04 |
UE5 / 블루프린트 메모_소울라이크 프로젝트 (0) | 2025.01.12 |
UE5 / Real Time Retargeting(5.4~) (0) | 2024.12.14 |
언리얼 / Texture streaming pool over budget (0) | 2024.12.14 |