언리얼 실행 환경은 메모리에 떠있는 언리얼 오브젝트가 사용 중인지 아닌지를 주기적으로 검사하고, 사용하지 않는 물체는 메모리에서 자동 제거하는 가비지 컬렉션을 제공한다.
언리얼 오브젝트가 사용 중인지 여부는 다른 언리얼 오브젝트가 해당 오브젝트를 참조하는지로 판단하는데, FHitResult의 멤버 변수 Actor의 선언이 일반 참조로 선언된다면 해당 함수에서의 참조로 인해 제거돼야 할 액터가 메모리에 그대로 남아있는 문제가 발생할 수 있다.
이러한 문제를 방지하기 위해 FHitResult는 참조로부터 자유롭게 포인터 정보를 전달해주는 약 포인터(TWeakObjectPtr) 방식으로 멤버변수를 선언했다. 약 포인터로 지정된 액터에 접근하려면 IsValid()함수를 이용해 사용하려는 액터가 유효한지 먼저 점검하고 사용해야 한다.
'UE4' 카테고리의 다른 글
[UE4] 데미지 프레임워크 (0) | 2022.10.21 |
---|---|
[UE4] 디버그 드로잉(Debug Drawing) (0) | 2022.10.20 |
[UE4] 물리엔진 (0) | 2022.10.20 |
[UE4] 델리게이트(Delegate) (0) | 2022.10.19 |
[UE4] 애니메이션 몽타주(Animation Montage) (0) | 2022.10.19 |