- IsValid(Object)
설명: UObject가 올바르게 할당되고 소멸되지 않았는지 확인하는 함수입니다.
사용 예시:
UObject* SomeObject = GetSomeObject();
if (IsValid(SomeObject))
{
// SomeObject가 유효한 경우 실행
}
주요 특징:
객체가 nullptr 인지 확인합니다.
객체가 PendingKill(GC에 의해 제거될 예정) 상태인지 확인합니다.
IsValid는 AActor의 경우 IsPendingKill()도 체크합니다.
- IsValidLowLevel()
설명: 객체가 Unreal Engine의 메모리 시스템에서 정상적인 객체로 인식되는지 확인하는 함수입니다.
사용 예시:
if (SomeObject && SomeObject->IsValidLowLevel())
{
// SomeObject가 엔진 메모리에서 유효한 경우 실행
}
주요 특징:
객체가 올바르게 생성되었는지 확인합니다.
내부 메모리 상태가 올바르게 유지되고 있는지 확인합니다.
하지만 GC에 의해 삭제 예정(PendingKill)인 객체도 유효하다고 판단할 수 있음.