본문 바로가기
Unreal5/ObstacleAssault

[언리얼5] 1. FString, 멤버함수

by 위니밍 2024. 6. 1.
반응형

주제 :FString, 멤버함수

 

FString

FString을 쓸때 FString을 쓸때는 "*"를 붙이라고 한다.

FSTring MyString = "My String Value";

UE_LOG(LogTemp, Display, TEXT("Here's My String: %s"), *MyStirng);

이유는 자세하게 설명 안해줬지만 궁금하기에 찾아봤다.(포인터 개념인가?)

 

FString은 언리얼 엔진에서 문자열을 다루기 위한 클래스

언리얼 엔진의 로그시스템이나 특정 API에서는 C 형태의 문자열이 필요할때가 있음(성능,호환성 문제)

그중 하나인 UE_LOG가 C 스타일 문자열이 필요한 매크로 예시 중 하나

그래서 "*"이 왜 필요하냐? 바로 "*"이 FString 객체를 TCHAR 배열(C 스타일 문자열)로 변환해줌

 

참고)

TCHAR는 뭐냐?

'UNICODE' 매크로가 정의 되어있는 경우 : TCHAR => whar_t

'UNICODE' 매크로가 정의 안되어 경우 : TCHAR => char

 

char : 1바이트 문자 / ASCII or 멀티바이트 문자열 적합

TCHAR : 2바이트 이상 문자 / 유니코드와 멀티바이트 모두 지원

언리얼 엔진은 기본적으로 유니코드 사용하므로 TCHAR 사용

 

TCHAR이 큰개념 / UNICODE 매크로 정의 유무에 따라 whar_t 랑 char 갈림 / TCHAR가 매크로 같은 개념 / 대부분 TCHAR=whar_t 로 많이쓰임

 

멤버함수

::   => 스코프 지정 연산자 (스코프 : 변수,함수,객체 등 접근가능한 범위)

int data = 0;   // 전역 변수

int main()
{
    int data = 0;   // 지역 변수

    data = 5;       // 지역 변수 data에 5가 대입!!
    return 0;
}


이런경우(지금 이해하기로는) 

main안에서 일반함수를 호출하고 싶으면

::data


바깥에서 main안에 함수를 호출하고싶으면

main::data

이렇게 불러오면 됨.(참조 : https://blog.naver.com/tipsware/221056751962)

 

참고)

java와 같이 객체지향 함수를 알아볼수 있었던곳이

헤더(.h)파일에서 public,protected,private 지정해서 함수를 만들어줌

 

반응형