반응형
어떠한 오브젝트의 참조 카운트를 얻을 수 있는 코드입니다.
static int32 URamaStaticFunctionLib::GetObjReferenceCount(UObject* Obj, TArray<UObject*>* OutReferredToObjects = nullptr)
{
if(!Obj || !Obj->IsValidLowLevelFast())
{
return -1;
}
TArray<UObject*> ReferredToObjects; //req outer, ignore archetype, recursive, ignore transient
FReferenceFinder ObjectReferenceCollector(ReferredToObjects, Obj, false, true, true, false);
ObjectReferenceCollector.FindReferences(Obj);
if(OutReferredToObjects)
{
OutReferredToObjects->Append(ReferredToObjects);
return OutReferredToObjects->Num();
}
return ReferredToObjects.Num();
}
누가 오브젝트를 참조 하고 있는가?
정확히 어떤한 오브젝트가 참조하고 있는지 TArray로 넘겨 받을 수 있습니다.
TArray<UObject*> ReferredToObjs;
GetObjReferenceCount(this,&ReferredToObjs);
for(UObject* Each : ReferredToObjs)
{
if(Each)
{
UE_LOG(YourLog,Warning,TEXT("%s"), *Each->GetName());
}
}
출처
https://nerivec.github.io/old-ue4-wiki/pages/garbage-collection-count-references-to-any-object.html
'게임 개발 > Unreal Engine 기본' 카테고리의 다른 글
[UE4] Assertion 이해하기 (0) | 2022.02.16 |
---|---|
[UE4] 오브젝트 생성 - CreateDefaultSubobject , NewObject, SpawnActor (0) | 2022.02.12 |
[UE4] 액터의 수명 주기, 가비지 콜렉터 (0) | 2022.02.10 |
[UE4] 언리얼 오브젝트의 기능 (0) | 2022.02.10 |
[UE4] 스마트포인터 - TSharedPtr, TWeakPtr, TUniquePtr (0) | 2022.02.09 |