[UE5] CDO란

seunghyun·2024년 3월 17일
0

UE 5

목록 보기
1/5

💡 언리얼 오브젝트의 클래스 기본 오브젝트 (Class Default Object)

  • 언리얼 클래스 정보에는 클래스 기본 오브젝트(이하 CDO)가 함께 포함되어 있다.

  • CDO는 언리얼 객체가 가진 기본 값을 보관하는 템플릿 객체이다.

  • 한 클래스로부터 다수의 물체를 생성해 게임 콘텐츠에 배치할 때 일관성 있게 기본 값을 조정하는데 유용하게 사용된다.

  • CDO는 클래스 정보로부터 GetDefaultObject() 함수를 통해 얻을 수 있다.

  • UClass 및 CDO는 엔진 초기화 과정에서 생성되므로 콘텐츠 제작에서 안심하고 사용할 수 있다.

💡 정리해보자

  • 언리얼 엔진에서 모든 클래스는 CDO라는 기본 모델을 가지고 있다.

  • CDO는 그 클래스의 인스턴스가 생성될 때의 초기 상태를 정의한다.

  • 예를 들어, 게임 내의 캐릭터 클래스가 있다면, CDO는 (공장 제품처럼) 그 캐릭터의 기본 건강 상태, 속도, 외모 등을 설정한다. 그리고 게임을 플레이하면서, 각 캐릭터 인스턴스는 차차 경험을 쌓고, 아이템을 얻으며 커스터마이징된다.


💡 NewObject로 생성된 언리얼 오브젝트의 인스턴스와 클래스 정보 UClass, CDO의 관계를 그림으로 정리해보기

  1. 언리얼 엔진에서 NewObject() 함수를 호출하면 특정 UClass의 새 인스턴스를 생성하는데, 이 과정에서 먼저 메모리에 객체를 할당한다.

  2. GetClass() 또는 StaticClass() 함수를 통해 객체의 클래스 정보를 검색하는데, 이 정보는 UClass 타입으로 제공되며 클래스의 구조와 메타데이터를 포함하고 있다.

    • GetClass() : 런타임에 이미 생성된 객체 인스턴스를 통해 그 인스턴스의 UClass 객체에 동적으로 접근
    • StaticClass() : 컴파일 타임에 클래스 자체에 대한 메타데이터에 접근
  3. GetDefaultObject() 함수를 호출하여 해당 UClass에 연결된 CDO에 접근할 수 있다.

0개의 댓글