TUniquePtr
- C++의 std::unique_ptr과 유사하다.
- 단일 소유권을 가지는 포인터로, 복사가 불가능하고 이동만 허용된다.
TSharedPtr
- C++의 std::shared_ptr와 유사한 참조 카운팅 방식으로 공유 소유권을 가지고 객체를 관리한다.
- 여러 곳에서 참조 가능하고, 모든 참조가 해제되면 자동 소멸.
- 일반 C++ 객체에서만 사용 가능하고, UObject에는 사용할 수 없다.
TWeakPtr
- TSharedPtr의 약한 참조(Weak Reference)로 실제 객체의 소유권을 갖지 않는다.
- 객체가 유효할 때만 접근 가능하다.
TObjectPtr
- UObject를 더 안전하게 관리하기 위한 스마트 포인터이다.
- 일반적으로 UPROPERTY에서 사용하고, 기존의 UObject 포인터를 대체한다.
- GC(가비지 컬렉션)에 의해 관리되지만, nullptr 안정성이 보장된다.
TSoftObjectPtr
- Soft Reference로 지연 로딩 가능한 UObject 참조 포인터이다. 즉, 참조하는 에셋이 항상 메모리에 로드되지 않아도 경로를 저장해서 사용 가능하다.
- 실제 로딩 시점에만 메모리 사용하기 때문에 메모리 절약에 유리하다.
TSharedFromThis
- 클래스 내부에서 자신을 가리키는 TSharedPtr을 반환할 수 있도록 하는 헬퍼 클래스이다.
- TSharedFromThis 객체의 라이프사이클이 반드시 TSharedPtr 또는 TSharedRef에 의해 관리되어야 한다.
- 주로 자기 자신을 콜백/델리게이트에 바인딩하거나 타 객체에 TSharedPtr로 전달해야 할 때 사용된다.