[TIL] 2026-04-02 | UnrealEngine에서의 TObjectPtr과 Raw포인터의 사용

2026. 4. 2. 22:33·언리얼 게임개발

TObjectPtr은 멤버변수에서 UObject를 소유하고 관리할 때만 사용하며, 함수의 반환값과 지역변수는 소유권 없이 단순 참조만 하는 것이기 때문에 Raw포인터(UObject*)를 사용

 

1. 왜 멤버 변수에만 TObjectPtr를 사용하는가

TObjectPtr는 단순히 포인터를 담는 그릇이 아니라, 에디터 빌드에서 지연 로딩(Lazy Loading)과 액세스 추적(Access Tracking) 기능을 제공하기 위해 설계되어 있다.

  • 직렬화(Serialization): 멤버 변수는 객체가 저장되거나 로드될 때 직렬화 대상이 된다. TObjectPtr는 로드되지 않은 에셋을 가리킬 때 이를 자동으로 감지하고 관리하는 시스템과 긴밀하게 연결되어 있다.
  • 에디터 기능: 에디터에서 해당 객체가 사용 중인지 추적하는 등 개발 편의성을 제공한다.

2. 함수 반환값과 지역 변수에 Raw 포인터를 사용하는가

함수 내부에서 잠시 사용하거나 값을 넘겨줄 때는 위에서 언급한 '관리' 기능이 필요하지 않다.

  • 성능과 단순함: TObjectPtr는 Raw 포인터로 암시적 형변환(Implicit Conversion)이 가능하도록 설계되었다. 함수 인자나 지역 변수에서 굳이 복잡한 래퍼(Wrapper) 클래스를 유지할 오버헤드를 가질 이유가 없다.
  • 소유권의 부재: 지역 변수는 객체를 '소유'하는 것이 아니라, 이미 메모리에 올라와 있는 객체를 잠시 '참조'하여 작업하는 용도이다.
  • 가독성: C++ 표준 및 언리얼 엔진 코드 컨벤션상, 일시적인 참조는 UObject* 로 표현하는 것이 훨씬 명확하다.

3. 요약 및 권장 사용법

구분 권장 타입 비고
클래스 멤버 변수 TObjectPtr UPROPERTY()와 함께 사용 필수
함수 매개변수 (Input) UObject* 호출자가 넘겨준 객체를 단순히 사용할 때
함수 반환값 (Return) UObject* 찾은 객체나 생성된 객체를 전달할 때
함수 내 지역 변수 UObject* 임시 계산이나 조건문 처리용

 

반응형

'언리얼 게임개발' 카테고리의 다른 글

[팀 프로젝트 회고] 2026-04-24 | 팀 프로젝트 회고  (0) 2026.04.27
[TIL] 2026-04-16 | GameplayCueNotify에서 무기 소켓 위치 올바르게 가져오기  (0) 2026.04.16
[TIL] 2026-04-13 | UE5 멀티플레이 로비 - 캐릭터 외형 커스터마이징 시스템 설계  (0) 2026.04.13
[TIL] 2026-04-06 | UnrealEngine에서의 Null체크: IsValid(Thing), Thing.IsValid, !Thing의 차이점  (0) 2026.04.06
[팀 프로젝트] 2026-04-01 | Steam Session Subsystem 기획  (0) 2026.04.01
'언리얼 게임개발' 카테고리의 다른 글
  • [TIL] 2026-04-16 | GameplayCueNotify에서 무기 소켓 위치 올바르게 가져오기
  • [TIL] 2026-04-13 | UE5 멀티플레이 로비 - 캐릭터 외형 커스터마이징 시스템 설계
  • [TIL] 2026-04-06 | UnrealEngine에서의 Null체크: IsValid(Thing), Thing.IsValid, !Thing의 차이점
  • [팀 프로젝트] 2026-04-01 | Steam Session Subsystem 기획
개발근육체육관원
개발근육체육관원
개발 근육 단련 체육관 입니다.
  • 개발근육체육관원
    개발근육체육관
    개발근육체육관원
  • 전체
    오늘
    어제
    • 분류 전체보기 (24)
      • 언리얼 게임개발 (13)
      • AlgorithmCodekata (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    AlgorithmCodekata
    c++
    Til
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
개발근육체육관원
[TIL] 2026-04-02 | UnrealEngine에서의 TObjectPtr과 Raw포인터의 사용
상단으로

티스토리툴바