- 순서
- 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 등 안전 접근 |
'Unreal Engine' 카테고리의 다른 글
| [UE] 비헤이비어 트리와 FSM (0) | 2025.08.29 |
|---|---|
| [UE] UE의 string 클래스 (1) | 2025.08.29 |
| [UE]TSubclassOf (1) | 2025.08.29 |
| [UE]StaticClass와 GetClass (0) | 2025.08.29 |
| [UE] 언리얼 빌드 툴/헤더 툴 (0) | 2025.08.29 |