컴포지션
- 객체 지향 설계에서 상속이 가진 Is-A 관계만 의존해서는 설계와 유지 보수가 어려움이 있다.
- 컴포지션은 객체 지향 설계에서 Has-A 관계를 구현하는 설계 방법
- 컴포지션 활용
- 복합적인 기능을 가진 거대한 클래스를 효과적으로 설계하는 데 유용하게 사용할 수 있습니다.
언리얼 엔진에서의 컴포지션 구현 방법
- 하나의 언리얼 오브젝트에는 항상 클래스 기본 오브젝트 CDO 가 있다.
- 언리얼 오브젝트에 다른 언리얼 오브젝트를 조합할 때 두 가지의 선택지가 존재한다.
- 방법 1 : CDO 에 미리 언리얼 오브젝트를 생성해 조합한다(필수로 포함해야 하는 경우).
- 방법 2 : CDO 에 빈 포인터만 넣고 런타임에서 언리얼 오브젝트를 생성해 조합한다(선택적으로 포함해야 하는 경우).
- 언리얼 오브젝트를 생성할 때 컴포지션 정보를 구축할 수 있다.
- 내가 소유한 언리얼 오브젝트를 Subobject라고 한다.
- 나를 소유한 언리얼 오브젝트를 Outer 라고 한다.

CreateDefaultSubobject<T>(FName SubobjectName)를 사용하여 CDO가 생성 될때 생성.(생성자에서만 호출해야 함 )
런타임에 필요시에 NewObject()를 사용 하여 생성.
'언리얼 엔진 공부 > 언리얼C++' 카테고리의 다른 글
| 직렬화 (2) | 2025.04.08 |
|---|---|
| 언리얼C++델리게이트(Delegate) (0) | 2025.04.03 |
| 인터페이스 (1) | 2025.04.02 |
| 언리얼 오브젝트 리플렉션 시스템 (0) | 2025.04.01 |
| 언리얼C++ 기본 타입과 문자열(Unreal C++ Primitive Types And String) (0) | 2025.03.31 |