반응형
UObject 파생 클래스를 파괴하려면 단일 함수인 ConditionalBeginDestroy()를 호출하면 된다.
C++의 delete를 사용하면 안된다.
오브젝트 인스턴스에 대하여 objectInstance->ConditionalBeginDestroy()를 호출하면된다.
이후 objectInstace에 대한 참조를 모두 NULL로 처리하고 ConditionalBeginDestroy()를 호출 후
-> objectInstance를 사용하지 않는다.
if(newObject)
{
newObject->ConditionBeginDestroy();
newObject=nullptr;
}
이 과정을 이용하면 클라이언트 코드는 오브젝트가 파괴된 것으로 간주하고 사용하지 않는다.
실제 메모리에 대해서는 가비지 컬렉션 루틴을 통하여 제거된다.
가비지 컬렉션은 기본값(61.1초)마다 호출된다.
가비지 컬렉션은 긴급하게 메모리 정리를 해야 하는 것이 아니라면 주기에 대해 신경 쓰지않아도 되지만,
너무 자주 사호출하면 렉을 유발할 수 있다.
반응형
'Unreal Engine 4 > Unreal Engine 4' 카테고리의 다른 글
TScopedPointer (0) | 2022.03.21 |
---|---|
TSharedPtr, TSharedRef (0) | 2022.03.21 |
Actor 클래스와 UObject에서 파생된 클래스의 인스턴스화 (0) | 2022.03.14 |
UE4 예상 되는 클래스 타입을 지정하는 다양한 방법 (1) | 2022.03.14 |
UCLASS 동작에 변화를 주는 키워드 (1) | 2022.03.14 |