오드젝트 소멸시점에 다음과 같은 코드를 작성하여 GC 수집 대상으로 포함시킬 수 있습니다. 그렇지만 당연히 다른 공유 포인터가 없어서 참조 카운트가 0 이여야 메모리 해제가 됩니다.
if (!ptr)return;
if (!ptr->IsValidLowLevel()) return;
ptr->ConditionalBeginDestroy();
ptr = nullptr; // 참조 카운트 리셋, ptr->Reset()도 동일합니다.
ForceGarbageCollection 함수를 하출하여 다음 프레임에 GC감지를 트리거합니다.
/** Updates the timer between garbage collection such that at the next opportunity garbage collection will be run. */
// void ForceGarbageCollection(bool bFullPurge = false);
GEngine->ForceGarbageCollection();
bFullPurge를 true로 설정하면 이 프레임의 모든 GC 오브젝트를 채웁니다. 이 접근 방식은 불규칙한 프레임 속도를 유발할 수 있지만 메모리가 부족할 때 유용합니다.