Unreal Engine 5._
[Unreal Engine] C2027 : use of undefine type 'AHUD'
ruru14
2022. 12. 26. 15:02
GameMode를 오버라이드 하는 도중, HUD클래스를 읽어오지 못 하는 이슈가 발생했습니다.
문제가 된 코드는 다음과 같습니다.
AMyGameMode::AMyGameMode() {
static ConstructorHelpers::FClassFinder<APawn> MyPawn(
TEXT("<MyPawnDir>_C"));
if(MyPawn.Succeeded()) DefaultPawnClass = MyPawn.Class;
static ConstructorHelpers::FClassFinder<AController> MyController(
TEXT("<MyControllerDir>_C"));
if(MyController.Succeeded()) PlayerControllerClass = MyController.Class;
static ConstructorHelpers::FClassFinder<AHUD> MyHUD(
TEXT("<MyHUD_Dir>_C"));
if(MyHUD.Succeeded()) HUDClass = MyHUD.Class;
}
위와 같이, 게임모드에서 관리되는 클래스를 오버라이드 하는 도중, HUD를 읽어오는 데 문제가 발생했습니다.
다음은 해당 문제로 발생한 컴파일 에러의 일부입니다.
\UE_5.0\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(188): error C2027: use of undefined type 'AHUD'
\UE_5.0\Engine\Source\Runtime\Engine\Classes\GameFramework\GameModeBase.h(19): note: see declaration of 'AHUD'
\UE_5.0\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(183): note: while compiling class template member function 'ConstructorHelpers::FClassFinder<AHUD>::FClassFinder(const TCHAR *)'
Pawn, Controller등의 다른 클래스는 잘 읽어오면서, HUD는 읽어오지 못 하는 상황이 발생했습니다.
해당 문제는 HUD 클래스를 include하는 것으로 해결했습니다.
#include <GameFramework/HUD.h>
Pawn, Controller등도 GameFramework에 있는데, HUD만 컴파일 에러를 발생시키는 이유는 모르겠습니다.
관련 문서를 찾게 되면 글을 남기도록 하겠습니다.
감사합니다.