[Unreal 5] 스마트포인터

김진우·2025년 7월 29일

Unreal

목록 보기
8/9
post-thumbnail

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로 전달해야 할 때 사용된다.

0개의 댓글