작성
·
262
0
안녕하세요. 강의 정말 잘 듣고 있습니다.
8강을 수강하다 궁금한 점이 생겨 질문드립니다.
UEnum을 가져올 때, 아래와 같이 모든 패키지에서 검색하여 가져오는 방법은 좋지 않은건지 궁금합니다.
const UEnum* CardEnumType = FindObject<UEnum>(ANY_PACKAGE, TEXT("ECardType"), true);
DisplayName을 가져올때도 아래처럼 GetMetaData() 함수를 사용하는 것은, 일반적이지 않은 방법인지 궁금합니다.
FString CardMetaData = CardEnumType->GetMetaData(TEXT("DisplayName"), (int32)CardType - 1);
읽어주셔서 감사합니다.
답변 1
1
앞으로 강의를 진행하면서 이런 궁금증이 계속될텐데요, 가장 좋은 방법은 Ctrl+Shift+F키를 사용해 소스코드에서 검색해보는겁니다. 소스코드에서 사용하고 Deprecated API가 아니라면 왠만하면 사용해도 괜찮다고 보면 됩니다.
오브젝트 검색시 ANY_PACKAGE를 인자로 넣는 방법은 5.1버전부터 deprecated 되어있다고 나와있기 때문에 가급적 사용을 자제하는 것이 좋습니다.
UE_DEPRECATED(5.1, "Support for searching for objects in ANY_PACKAGE has been deprecated. Please provide the actual Outer of an object you want to find.")
GetMetaData는 언리얼 객체에 심은 메타데이터 정보를 가져오는 함수이기 때문에 자주 사용됩니다.
상세한 답변 감사합니다!