언리얼엔진5 공부

CDO (Class Default Object)

Client Side 2025. 11. 16. 20:59

CDO

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

'언리얼엔진5 공부' 카테고리의 다른 글

ENetMode  (0) 2025.11.18
디버깅  (0) 2025.11.17
UObject  (0) 2025.11.14
UHT, UBT, UAT, UBS, UMS  (1) 2025.11.13
랜덤함수  (0) 2025.11.11