Unknown Struct
FStructProperty::Serialize Loading: Property 'StructProperty /Game/06_Entity/Monsters/01_Orc/BP_OrcNotifyHandler.BP_OrcNotifyHandler_C:ExecuteNotify:Context'. Unknown structure.MassAnimNotifyContext 라는 구조체에 대한 break struct BP 노드가 에디터를 재시작할 때마다 broken 상태로 변경되었다.해결법Config>Default[ ].ini 에 있는 Redirects를 제거함.원인
- 기존에 MassAnimNotifyContext를 플러그인에서 선언하자 기존 게임 소스에서 구현한 구조체와 이름이 중복됨.
- 해결을 위해 게임 소스의 MassAnimNotifyContext에서 IDE Rename 기능을 이용하여 일괄적으로 MassAnimNotifyContext_dep로 이름을 변경함.
- 이 변경과정에 플러그인 소스의 MassAnimNotifyContext도 영향을 받음.
- 실제 사용하는 플러그인 소스의 구조체들의 이름을 수기로 _dep를 제거함.
- 이 과정에서 리디렉터에 남아있는 사실을 확인하지 못했고, cpp에서 구현을 작성할 때에는 발생하지 않던 문제가 BP에서 뒤늦게 발생함.
해결법 조사 과정1.먼저 오류가 발생한 FStructProperty::Serialize에서 debug 실행.2.구조체 데이터를 불러오는
Ar << Struct에 breakpoint를 걸고 step in -> FLinkerLoad::opeartor<<(FObjectPtr& ObjectPtr)로 이어짐.3.operator 함수 작동 끝부분에서 Index=40이었고, ImportMap[40]에서 ObjectName=MassAnimNotifyContext_dep를 확인.4.실제 사용은 _dep이 없는데, 왜 _dep이 있는 것을 사용하는지 추적, 리디렉터 확인.앞선 시도 기존에 플러그인 내 클래스/구조체/열거형 등을 이용하는 경우 BP로드시점이 플러그인 로드시점보다 이른 경우 고장나는 경우가 있었음. 따라서 플러그인의 LoadPhase를 PreDefault로 변경함. -> 해결되지 않음.