Blueprint 에서 지원하는 UPROPERTY type

2020. 5. 18. 13:54엔진/UE4

처음 이 이슈를 인지했던건 Array 컨테이너에 TWeakObjectPtr 을 사용했을 때 였던 것 같다.

 

특정 멤버변수를 UPROPERTY 지정자로 마킹해서 Blueprint 로 노출시키고자 할 때,

멤버변수의 타입이 Blueprint 에서 지원하는 UPROPERTY 타입이 아니면, UHT Parser 단에서 컴파일 에러를 내게끔 되어있다.

 

타입 바꾸는 비용은 대부분 크지 않기 때문에, 큰 일은 아니겠지만서도 신나게 코딩했던 시간들이 아깝게 느껴졌던 것 또한 사실이였다.

 

그래서 사전에 Blueprint 가 지원하는 UPROPERTY 타입을 알고 있어야겠단 생각이 들어 찾아뒀던 것을 지금에서야 기록해둔다. 언리얼 문서는 찾아보았는데 따로 없었던 걸로 기억한다.

 

코드이기 때문에 엔진 버전이 바뀌면 언제든지 바뀔 수 있다는 것을 염두해두자.

 

HeaderParser.cpp

- IsPropertySupportedByBlueprint()

 

위 함수에서 해당 Property 가 Blueprint 에서 지원하는 타입인지 검사한다.

 

기억해둘만한 것은,

1. TWeakObjectPtr 은 단일멤버변수로는 가능하지만, Array,Set,Map 의 요소로는 불가능하다.

2. int64 는 지원하지만, uint64 는 지원하지 않는다.
   uint64 를 BP 에서 사용하고 싶다면, 대부분 String 으로 대체해서 사용한다.

3. 구조체인 경우, BlueprintType 메타 지정자가 있어야한다.

 

'엔진 > UE4' 카테고리의 다른 글

UE4 GitHub 으로 설치하기  (0) 2020.05.11
UObject 의 Outer  (0) 2020.03.23