CDO
- Class Default Object, 어떤 클래스에 대한 기본 설정값들을 가지고 있는 하나의 대표 객체
- 엔진에서 클래스를 하나 만들면 엔진은 이 클래스에 해당하는 CDO라는 특별한 객체를 딱 한번 만든다.
- CDO의 역할
- 기본 설정값 저장
- C++ 코드나 블루프린트에서 클래스의 기본 변수 값을 설정하면 그 값들이 이 CDO에 저장된다.
- 새로운 객체의 템플릿
- 나중에 이 클래스의 객체를 생성할 때, 엔진은 이 CDO의 복사본을 만드는 방식으로 객체를 생성한다. 매번 처음부터 모든 값을 초기화하는 게 아니라, 이미 기본값이 세팅된 CDO를 복제해서 훨씬 빠르고 효율적으로 객체를 만들 수 있다.
- 에디터 편의성 제공
- 언리얼 에디터에서 블루프린트를 열었을 때는 ‘클래스 디폴트’ 패널이나, C++ 클래스에 대한 디테일 패널에서 변경하는 값들이 바로 이 CDO의 값을 변경하는 것이다. 이렇게 CDO의 값을 변경하면, 이 클래스를 이용해 앞으로 만들어질 모든 새 객체들은 변경된 기본값을 갖게 된다.
- 기본 설정값 저장
- CDO의 장점
- 성능 최적화 및 효율성
- 게임 실행 중에 새로운 객체가 계속 만들어질 수 있는데, 그때마다 객체의 모든 초기화 코드를 매번 실행하면 자원 소모가 심해진다.
- CDO는 클래스당 한 번만 생성되고 모든 기본값이 초기화된 상태로 존재하니까, 새로운 객체를 만들 때는 그 CDO를 복제하기만 하면 된다. 이 덕분에 객체 생성 과정이 훨씬 빨라지고 효율적이게 된다.
- 에디터에서의 편리한 작업
- CDO 덕분에 언리얼 에디터에서 C++ 클래스의 기본값을 GUI로 쉽게 변경할 수 있다. 코드를 수정하고 컴파일하지 않아도, 에디터에서 값을 바꾸면 그 클래스를 기반으로 하는 모든 새 객체에서 자동으로 적용된다.
- 블루프린트를 사용하면 이 장점이 더욱 극대화된다. 블루프린트의 클래스 디폴트 창에서 속성을 변경하는 것이 바로 CDO의 속성을 변경하는 것이다.
- 성능 최적화 및 효율성