작성
·
69
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