Open Eu4ng opened 1 year ago
언리얼에서는 기본적으로 CDO를 생성한 뒤, 이를 복제하는 방식을 통해 새로운 인스턴스를 생성한다.
데이터 애셋을 멤버 변수로 가지고 있고, 이를 통해 각각의 인스턴스를 초기화해주는 경우를 생각해보자.
데이터 애셋에 저장되어 있는 실제 데이터를 활용하기 위해서는 초기화 시점이 PostLoad 이후이어야한다. 하지만 PostLoad는 CDO를 생성할 때도 호출되고 CDO에는 데이터 애셋 변수에 값이 할당되어 있지 않기 때문에 nullptr일 것이다. 그렇기 때문에 nullptr check를 해주어야 CDO에서 초기화 시 오류를 피할 수 있다.
EquipmentInstance 생성 생성 후 EquipmentInstance 초기화 // EquipmentInstance->Init(EquipmentDefinition), EquipmentInstance->SetEquipmentComponent(EquipmentComponent)
40
UObject에서 아래 기능이 필요하다. Actor에서는 PostRegisterAllComponents가 해당한다.
혹은 CDO인지 확인 후 예외처리 하는 방법 고려중이다