[TIL] Unreal Engine - C++ 커스텀 컴포넌트(Component) 구조 이해하기
📌 1. 컴포넌트(Component)란?
- 액터(Actor)에 부착하여 특정 기능이나 외형을 부여하는 조립식 부품.
- 레고 블록처럼 필요한 기능을 컴포넌트 형태로 만들어 액터에 자유롭게 탈부착할 수 있음.
- 핵심 이점: 모듈화, 코드 재사용성 극대화, 액터 클래스의 경량화.
📌 2. 컴포넌트의 두 가지 핵심 종류
언리얼 C++에서 컴포넌트를 만들 때는 목적으로 고르고 상속받아야 한다.
| 종류 | 상속 클래스 | 트랜스포름(위치/회전) | 주요 용도 |
| 씬 컴포넌트 | USceneComponent | O | 외형(Mesh), 소리(Audio), 빛(Light) 등 공간적 위치가 필요한 기능 |
| 액터 컴포넌트 | UActorComponent | X | 체력 시스템, 인벤토리, 스킬 쿨타임 등 순수 데이터 및 로직 처리 |
📌 3. C++ 커스텀 컴포넌트 구현 핵심 포인트
1) 매크로 설정 (.h)
- UCLASS 매크로 내부에 meta=(BlueprintSpawnableComponent)를 넣어줘야 언리얼 에디터(블루프린트)의 [+추가] 메뉴에서 검색 및 부착이 가능해짐.
- 블루프린트 노출을 위해 변수에는 UPROPERTY, 함수에는 UFUNCTION 매크로를 적절히 활용.
2) 틱(Tick) 최적화 (.cpp)
- 매 프레임 연산이 필요 없는 컴포넌트(예: 체력 관리)라면 생성자에서 PrimaryComponentTick.bCanEverTick = false;를 설정하여 성능을 최적화하는 것이 좋음.
3) 액터에 장착하는 두 가지 방법
- C++ 코드 방식: 부모 액터 생성자에서 CreateDefaultSubobject<T>()를 사용하여 고정 부착.
- 에디터 방식: 블루프린트 컴포넌트 창에서 마우스 클릭으로 유연하게 부착.
✍️ 한 줄 요약 (Takeaway)
"액터에 코드를 몰아넣는 '스파게티 액터'를 방지하려면, 독립적인 기능(체력, 인벤토리 등)은 UActorComponent를 상속받은 C++ 커스텀 컴포넌트로 모듈화하여 재사용성을 높여야 한다!"
'내일배움캠프_언리얼9기' 카테고리의 다른 글
| 내일배움캠프 53일차 TIL 2026/07/07 (0) | 2026.07.07 |
|---|---|
| 내일배움캠프 52일차 TIL 2026/07/06 (0) | 2026.07.06 |
| 내일배움캠프 50일차 TIL 2026/07/02 (0) | 2026.07.02 |
| 내일배움캠프 49일차 TIL 2026/07/01 (0) | 2026.07.01 |
| 내일배움캠프 48일차 TIL 2026/06/30 (0) | 2026.06.30 |