UActorComponent와 USceneComponent
팀프로젝트가 진행되면서 언리얼엔진을 본격적으로 C++로 작성하는 일이 많아지다 보니 자연스럽게 액터를 신규 작성하는 일이 많아지고 있다. 그러다 보면 컴포넌트를 직접 액터에 붙여주는 경우가 많은데 기본적으로 Scene컴포넌트를 Root로 지정하는 경우가 많다.(그렇게 배웠으니) 왜 이렇게 쓰는지 궁금해졌으니 오늘은 이런 액터컴포넌트와 씬컴포넌트에 대해서 자세하게 알아보도록 하자
UActorComponent
UActorComponent는 월드 내에 특정한 위치 값을 가지지 않는 액터에 추가 가능한 기능이나 로직을 담당하는 기본 클래스이다. 예를들어 UHealthComponent, UInputComponent, UAIPerceptionComponent과 같이 플레이어의 체력이나 입력을 관리하는 컴포넌트나 AI가 주변을 인지하도록 돕는 컴포넌트들을 만들때 UActorComponent를 상속받아 작성하게 된다. 이렇게 작성한 컴포넌트는 어떤 액터에든 붙여서 해당 기능을 추가할 수 있다.
USceneComponent
USceneComponent는 UActorComponent의 모든 기능을 가지면서 월드 내의 위치 정보 또한 갖고있는 클래스이다. 이 위치 정보를 갖는다는 특성 때문에 USceneComponent는 다른 USceneComponent에 부착할 수 있으며 이를 통해서 계층 구조를 만들 수 있다. 파생클래스로는 UStaticMeshCompoenent, UCameraComponent, USpringArmComponent 등 익히 액터를 생성하면서 봐왔던 컴포넌트 들이며 이런 컴포넌트들을 다른 USceneComponent에 부착할 수 있다 문제는 모든 액터는 반드시 1개의 USceneComponent를 루트 컴포넌트(RootComponent)로 가져야한다. 이 루트 컴포넌트가 월드에서의 액터의 위치가 된다.
'unreal 5기' 카테고리의 다른 글
| 251029 언리얼본캠프 55일차 TSparseArray와 TSet (0) | 2025.10.30 |
|---|---|
| 251028 언리얼엔진 본캠프 54일차 TMap (0) | 2025.10.28 |
| 251024 언리얼엔진 본캠프 52일차 게임플레이 프레임워크 (0) | 2025.10.24 |
| 251023 언리얼엔진 본캠프 51일차 레플리케이션(Replication) (0) | 2025.10.23 |
| 251022 언리얼엔진 본캠프 50일차 리플렉션(Reflection) 시스템 (0) | 2025.10.22 |