midas+son의 크리에이티브(creative) 이야기

4.12.5버전을 사용할 때에는

아래처럼 블루프린트 경로를 설정하여 사용하였었는데

FName Path = TEXT("Blueprint'/Game/Actor/My_BP.My_BP'"); //My_BP.My_BP_C였던거 같은데...4.15에서는 _C붙이면 NULL이 됨.

UBlueprint* GeneratedBP = Cast<UBlueprint>(StaticLoadObject(UBlueprint::StaticClass(), NULL, *Path.ToString()));

GetWorld()->SpawnActor<AMyActor>(GeneratedBP->GeneratedClass, location, FRotator::ZeroRotator);

4.15버전에서는 에디터에서만 되고

실행 모드나 빌드 후 exe로 게임을 실행하면 Error가 발생한다.


그래서 여러 방도를 찾다가 아래와 같이 UClass를 찾으면 된다는 걸 알아냈다.

FName Path = TEXT("Class'/Game/Actor/My_BP.My_BP_C'"); //_C 꼭 붙여야 한다.

UClass* GeneratedBP = Cast<UClass>(StaticLoadObject(UClass::StaticClass(), NULL, *Path.ToString()));

GetWorld()->SpawnActor<AMyActor>(GeneratedBP, location, FRotator::ZeroRotator);

전 버전에서도 _C붙이는 것과 안붙이는 차이가 있었긴 한데

4.15 이상으로 오면서 BP Class와 BP 레퍼런스를 받아오는 게 명확히 나뉜거 같다.