inflearn logo
강의

Course

Instructor

Hands-On! Unreal Souls-Like Development: A to Z

Implement Roll Function

TObjectPtr 사용처

Resolved

227

rocketracoon

12 asked

0

안녕하세요!! 덕분에 좋은 강의 너무 잘 듣고 있습니다. 감사합니다 (_ _)

혹시 TObjectPtr을 사용하신다면..?! 언제 사용하실지 문득 궁금해서 질문 남겨봅니다!!

c++ unreal-engine 언리얼-c++

Answer 2

4

Spector

안녕하세요~

TObjectPtr은 언리얼 엔진에서 가비지 컬렉션(GC)에 의해 관리되는 UObject 파생 클래스를 참조할 때 원시 포인터 대신 사용할 수 있습니다. 이에 해당되는 모든 경우에 대체가 가능합니다.

 

다만, 상황에 따라 TObjectPtr과 원시 포인터의 사용을 구분하는 것이 중요합니다.

일반적으로 UPROPERTY로 선언된 클래스 멤버 변수에는 TObjectPtr을 사용하는 것이 권장됩니다.

 

반면, 임시 참조나 함수 매개변수로 UObject를 전달할 때는 주로 원시 포인터를 사용합니다.

이러한 경우 참조의 수명이 제한적이고 명확하기 때문에 TObjectPtr의 추가 기능이 필요하지 않습니다.

 

또한, 성능이 중요한 코드 섹션에서는 가비지 컬렉션 오버헤드를 고려해 원시 포인터가 더 효율적인 선택일 수 있습니다. 함수 내부의 지역 변수 역시 일반적으로 원시 포인터로 선언하는 것이 적합합니다.

주목할 점은 TObjectPtr이 주로 에디터 환경에서 추가 기능을 제공한다는 것입니다. 최종 배포 빌드에서는 모든 TObjectPtr이 원시 포인터로 변환되어, 런타임 성능에 영향을 미치지 않습니다.

즉, TObjectPtr을 사용하지 않는다고 해서 GC에서 문제가 된다거나 하지는 않습니다.

 

1

rocketracoon

와 자세한 답변 감사합니다..!! 언리얼5부터 쓰면 좋다고 들었지만 구체적으로 왜 좋은지 몰랐는데, 성능이 중요하거나 간단하게 쓸 때는 원시 포인터가 더 나을 수도 있군요 😀

맵핑부분..

0

24

2

ABP "스테이트의 시퀀스 플레이어에 따른 자동 규칙"질문드립니다.

0

32

1

사용하시는 툴 질문 드립니다.

0

31

2

C++ 생성자 값 관련 질문입니다.

0

70

1

빠른 헤더파일 추가 관련 질문입니다.

0

75

2

각 섹셕별로 수업 자료가 제공된다고 했는데 어디에서 받을 수 있는지 모르겠습니다.

0

84

2

프로젝트 생성 및 설정 첫 강의를 보면서 들었던 궁금한 점

0

119

2

안녕하세요. 입문자입니다.

0

65

1

GAS 관련

0

85

1

폴암 무기 집을때 크러쉬

0

89

2

Tick 컴포넌트에서 락온 함수

0

64

2

카메라를 적에게 고정시키는 로직 부분

0

72

2

강의 자료

0

105

3

방어구 시스템 구현 질문

0

84

3

블로킹 시 피격 이펙트 오류?

0

55

2

AlreadyHitActor들을 TArray로 처리하는 것에 질문있습니다.

0

57

2

무기 콜리전 시스템에 대해

0

101

1

Hit Reaction 설계

0

113

3

FindClosestTarget CheckValue 절댓값 처리

0

65

2

FindClosestTarget 노멀 벡터 방향

0

56

2

44분26초 동일하게 코드를 작성한것같은데 빌드에러가 뜹니다ㅠ

0

83

2

파티클 깨짐

0

54

1

Geneal Action 의미

0

47

0

2강 32분18초 Generate definition 하는 방법이 뭘까요?

0

80

1