언리얼 오브젝트 개념
[이득우의 언리얼 프로그래밍 수업의 정리]
모던 객체 지향 설계 원칙
유지보수, 유연함, 확장성 향상을 위한 객체 지향 프로그래밍 원칙 - SOLID
Single responsibility principle : 하나의 클래스는 하나의 책임만을 가져야 함
Open/closed principle : 클래스 설계를 변경하지 않고 동작을 확장할 수 있어야 함
Liskov substitution principle : 자식 클래스는 부모 클래스를 대체 사용할 수 있어야 함
Interface segregation principle : 작고 명확한 인터페이스들로 분리해 관리해야 함
Dependency inversion principle : 구현을 배제시킨 상위 정책을 바라보며 설계해야 함
게임 규모의 대형화로 모던 객체 지향 설계 도입이 필요해짐
-> C++언어를 매크로를 이용해 확장, 모던 객체 지향 설계 가능하도록 함
언리얼 오브젝트
- 새로운 언리얼 엔진만의 객체 규약
- c++ 오브젝트엔 F, 언리얼 오브젝트엔 U 라는 접두사 사용.
UObject 라는 베이스 클래스에서 상속받아 언리얼 오브젝트 구현, UCLASS 매크로를 사용하여 태그하면 UObject 처리 시스템에서 인식.
언리얼 오브젝트의 특징
- 클래스 기본 객체(CDO) : 클래스의 기본 값과 타입 정보의 제공
- 리플렉션 : 런타임에서 클래스 정보의 참조 기능
- 인터페이스 : 모던 객체 지향의 언어가 제공하는 인터페이스 제공
- 향상된 열거형
- 델리게이트 : 객체간의 결합을 낮출 수 있는 델리게이트 기능 제공 (나는 C#에서 쓰려다가 이해못해서 안쓴 기능이었다..)
- 가비지컬렉션 : 자동 메모리 관리
- 향상된 구조체 : 리플렉션 가능한 구조체 지원
- 직렬화(Serialization) : 객체 정보를 바이트 스트림으로 저장, 전송, 불러들이는 기능
언리얼 오브젝트는 지정된 매크로를 사용해 빌드를 수행하면, 추가 코드가 자동으로 만들어지는 구조를 가짐(UHT)
-> 대규모 게임제작 안정적으로 설계 및 구현 가능
'Unreal 이론' 카테고리의 다른 글
언리얼 델리게이트 (0) | 2024.08.14 |
---|---|
언리얼 컴포지션 (0) | 2024.08.13 |
언리얼 인터페이스 (0) | 2024.08.08 |
언리얼 프로퍼티 시스템(리플렉션) (0) | 2024.08.04 |
C2338 - 매크로 관련 에러 (0) | 2024.08.02 |