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

eunjeong seo님의 프로필 이미지
eunjeong seo

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

14강 게임플로우 다듬기

아이템박스에서 배열 빈경우,

작성

·

74

0

안녕하세요.

아이템박스인걸로 봐서, 처음 아이템랜덤으로 어셋매니저사용할때 내용인거같은데, 지금 크래쉬가 나서 보니 이부분인데요.

//ItemBox.cpp

 

void AABItemBox::PostInitializeComponents()

{

Super::PostInitializeComponents();

UAssetManager& Manager = UAssetManager::Get();

TArray<FPrimaryAssetId> Assets;

Manager.GetPrimaryAssetIdList(TEXT("ABItemData"), Assets);

ensure(0 < Assets.Num());

int32 RandomIndex = FMath::RandRange(0, Assets.Num() - 1);

FSoftObjectPtr AssetPtr(Manager.GetPrimaryAssetPath(Assets[RandomIndex]));

if (AssetPtr.IsPending())

{

AssetPtr.LoadSynchronous();

}

Item = Cast<UABItemData>(AssetPtr.Get());

ensure(Item);

Trigger->OnComponentBeginOverlap.AddDynamic(this, &AABItemBox::OnOverlapBegin);

}

 

//이렇게 확인했습니다.

else {

UE_LOG(LogTemp, Error, TEXT("GetPrimaryAssetPath Problem"));

}

배열이 비어있는거같은데, 이런경우에 시도해볼 해결책은 어떤것이 있을까요?

답변 1

0

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

Assets 배열이 비어있다면, 초기에 애셋매니저에서 ABItemData 애셋아이디 목록을 못 가져온 것으로 보여집니다. 프로젝트 설정이 잘 되었는지, 애셋들이 잘 제작되었는지, GitHub 샘플과 한번 비교해보시겠어요?
비슷한 질문이 있어서 링크 남깁니다.
https://www.inflearn.com/community/questions/1192417

 

eunjeong seo님의 프로필 이미지
eunjeong seo

작성한 질문수

질문하기