인프런 커뮤니티 질문&답변

112123님의 프로필 이미지
112123

작성한 질문수

이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해

14강 언리얼 오브젝트 관리 II - 패키지

패키지 강의에서 서브 오브젝트 질문

작성

·

564

0

강의에 나온 코드를 보다 보니

Student 패키지를 만들고 그걸 로드 해보는 다양한 방법을 배웠습니다.

그런데 TopStudent 에셋 저장 시 함께 입력된 SubObject 학생 1~10 에 대한 정보는 입력만 되고 따로 불러서 확인해 보는 부분이 없어서 이렇게 저렇게 해보다 질문 드립니다.

이 에셋 속에 있는 서브 오브젝트는 어떻게 불러 올 수 있을까요?

답변 2

1

이득우님의 프로필 이미지
이득우
지식공유자

아 엉뚱한 API를 알려드렸네요. GetObjectsWithOuter를 쓰면 됩니다.

TArray<UObject*> SubObjects;
GetObjectsWithOuter(TopStudent, SubObjects);
for (UObject* SubObject : SubObjects)
{
	UE_LOG(LogTemp, Log, TEXT("서브오브젝트 : %s"), *SubObject->GetName());
}


0

이득우님의 프로필 이미지
이득우
지식공유자

GetDefaultSubobjects 함수를 호출해주면 자신을 Outer로 설정한 모든 서브오브젝트를 얻어올 수 있습니다.

112123님의 프로필 이미지
112123
질문자

TopStudent 를 저장하는 시점 또는 로드한 시점 양쪽에서 모두
TArray<UObject*> ObjectArray;
TopStudent->GetDefaultSubobjects(ObjectArray);

를 실행 했을 ObjectArray 는 항상 Empty 상태로 반환되고 있는데 방법에 문제가 있었을까요?

112123님의 프로필 이미지
112123

작성한 질문수

질문하기