Unreal Engine
[UE] 유효성 검사
programmer-faust
2025. 8. 29. 04:22
- 순서
- IsValid란?
- IsValid 검사
- nullptr 검사
- IsValid와 nullptr 검사의 차이
- IsValid란?
- 언리얼 엔진에서 제공하는 UObject 안전 검사 함수이다.
- 단순히 포인터가 nullptr인지 뿐 아니라, UObject가 이미 Destroyed 상태인지까지 검사해줌. 즉 이 객체를 안전하게 접근할 수 있는지를 판단함.
- IsValid 검사
- 포인터가 nullptr인지 검사
- UObject가 IsPendingKill() 상태인지 검사
- 둘 다 아니라면 true 반환하며 하나라도 해당되면 false를 반환함
- nullptr 검사
- 단순히 포인터 자체가 nullptr 상태인지 확인
- 포인터가 메모리를 가리키고 있는지만 검사하기 때문에 이미 삭제된 객체라도 포인터가 남아 있으면 nullptr가 아니라 접근시 위험할 수 있음
- IsValid와 nullptr 검사의 차이
| 항목 | nullptr | IsValid() |
| 검사 대상 | 포인터 자체 | 포인터 + UObject 상태 |
| Destroyed 객체 | 포인터는 남아있음 > false는 못잡음 | IsPendingKill 체크 > false 반환 |
| 안전성 | 낮음 | 높음 |
| 사용 용도 | 일반 포인터 검사 | UObject포인터, Actor 등 안전 접근 |