본문 바로가기
Unreal 게임 개발/Unreal C++ 공부

Unreal Class Default Object

by daisy0461 2023. 1. 17.

Unreal에서 A라는 Class를 만들게 되면 A라는 Class를 기반으로 A Class Default Object(CDO)를 생성한다.

이 Class Default Object는 Unreal Engine Reflection System을 가지고 있는 원본 Object이다.

Unreal Engine이 시작할 때 혹은 컴파일 할때 만들어진다.

 

말이 조금 어려워 보이는데 간단하게 원본이라고 했다.

즉, Default 값을 들고 있다는 의미와 동일하다고 생각하면 된다.

 

이 Default 값은

A라는 Class를기반으로 World에 생성된  Blueprint Object들의 프로퍼티를 Reflection System에 접근해서 초기화시켜준다.

간단하게 A기반 BP Object의 값은 생성됐을 때 A Class Default Object가 초기화 시켜준다는 의미이다.

즉, Blueprint의 Default값은 엔진에 의해 초기화된다.

Begin도 살펴보면 Spawned 됐을 때 Call한다고 나와있다.

Begin보다는 살짝 먼저 Default값을 넣어주고 그 이후에 BeginPlay에 변경 된 값이 있으면 변경된 값이 적용된다.

 

이런 모든 과정이 내부적으로 일어나기 알아차리기가 어렵다.

 

하지만 이러한 과정을 알아야하는 이유가 결국 Flow Chart 때문이다.

예를 들어 Constructor에 폭탄이 폭발한다 라는 코드를 넣어두면 다른 Object들은 Class Default Object로 초기화되기도 전에 폭탄이 폭발한다.

만약 게임이 시작하자마자 폭탄이 폭발하길 원한다면 BeginPlay에 넣는 것이 알맞다.

그래야 Object들이 초기화된 상태에 존재하기 때문이다.

 

'Unreal 게임 개발 > Unreal C++ 공부' 카테고리의 다른 글

C++ 람다 표현식 (Lambda expression)  (0) 2024.09.05
Unreal Module 추가 방법  (0) 2023.01.26
Unreal Axis Mapping (Unreal 움직임 만들기)  (0) 2023.01.22
Unreal Default Subobject  (0) 2023.01.18
Unreal DeltaTime  (0) 2023.01.15