상세 컨텐츠

본문 제목

[Unreal] 언리얼 문자 클래스

Portpolio/Unreal C++

by 부레두 2024. 5. 9. 23:29

본문

1. FName

  • 문자열 중 초경량 시스템
  • 문자열이 재사용되도 데이터 테이블에 한 번만 저장되는 것이 특징
  • 대소문자 구별 X, 변경 X, 조작 X
    • ex ) 에셋 이름, 머티리얼 파라미터, 액터 태그명, 스켈레탈 본 이름

2. FText

  • 로컬라이제이션 전용 문자열 클래스
  • 유저에게 보여지는 모든 텍스트는 이 클래스를 사용
  • UMG 텍스트 컴포넌트에서도 사용
    • ex ) HUD에 보이는 텍스트, 유저 인풋 텍스트…

3. FString

  • FText, FName과 달리 텍스트 조작이 가능
  • 대소문자 변환, 부분문자열 발췌, 역순 등의 함수 제공
  • 검색, 변경, 비교 가능하지만 FText, FName보다 자원을 더 소모
FString TestString = FString(TEXT("Test String"));

 

1. 변환

  • From FString
    • TestString = FName(*TestString);
    • → ‘FString’ 에서 ‘FName’ 으로, FName은 대소문자를 구분하지 않아 손실성 변환
    • TeshString = FText::FromString(TestString);
    • → FString의 내용이 FText의 “자동 현지화”는 받지 못할 수 있음
  • To FString
    • TestString = TestStrng.ToString();
    • → FName, FText에서의 변환 모두 같은 구문

2. 비교

  • 오버로딩된 == 연산자를 사용해, 두 String을 비교하거나 FString과 TCHAR*s 배열과 비교 가능
  • FString::Equals()를 통해 대소문자 무시 여부를 포함한 비교가 가능
  • ⇒ ESearchCase::IgnoreCase / ESearchCase::CaseSensitive
TestString.Equals(TEXT("Test"), ESearchCase::CaseSensitive);

 

3. 검색

 

  • 서브 스트링 검색
TestString.Contains(TEXT("Test"), ESearchCase::CaseSensitive, ESearchDir::FromEnd);

-> 검색 대상, 대소문자 무시 여부, 검색 방향
  • 서브스트링 인스턴스의 인덱스
  • → 찾지 못할 경우 -1 반환
TestString.Find(TEXT("test"), ESearchCase::CaseSensitive, ESearchDir::FromEnd, 10);

-> 검색 대상, 대소문자 무시 여부, 검색 방향, 시작 인덱스

 

4. 조작

Canvas->DrawText(BigFont, TestString, 110.0f, 110.0f);

→ UEngine::AddOnScreenDebugMessage()를 사용

⇒ ( Key, TimeToDisplay, DisplayColor, DebugMessage )

  • Key : 같은 메시지가 여러번 추가되지 않도록 하기 위한 고유 키
  • TimeToDisplay : 메시지를 얼마나 오래 표시할 것인지 초 단위
  • DisplayColor : 표시되는 텍스트의 색
  • DebugMessage : 표시할 메시지

'Portpolio > Unreal C++' 카테고리의 다른 글

[Unreal & C++] 파쿠르 w.모션워핑  (0) 2024.07.29
[Unreal & C++] 프로젝트 1  (0) 2024.05.08
[C++ 개선] 타겟팅 - 1  (0) 2024.03.22
[C++] 포트폴리오 정보  (0) 2024.03.22

관련글 더보기