인프런 커뮤니티 질문&답변

hush park님의 프로필 이미지
hush park

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

15강 게임의 완성

15강에서 AGameModeBase 관련 에러가 뜹니다.

해결된 질문

작성

·

122

·

수정됨

0

(5.4.3 기준)

14강까지 잘 달려오다가 15강에서 갑자기 오류가 뜹니다.

우선 14강까지 쓰던 프로젝트를 문제없이 그대로 써왔으며, 15강을 시작하기 앞서 이 프로젝트를 빌드를 통해 에디터가 켜지는것을 확인 후, 15강의 앞부분 c++코드를 따라하면서, 정확히

"7:42 까지 따라한 후, 즉 캐스팅코드 작성 이후 헤더까지 포함 시킨 후 바로 F5를 누르면 맨 아래와 같은 에러가 뜹니다.((바로 전 단계인 ABGameInterface.h 를 에디터에서 생성 후, 모두 로드를 클릭한 후에 그 즉시 f5를 눌러 문제없이 에디터가 켜지는 것을 재차 테스트하여 확인함)"

이후에 어떤 코드를 이어 써서 디버깅해도 같은 에러가 떠서 수강 진행이 막혀있는 상태입니다.

그래서 깃허브에서 올려주신 "UnrealProgrammingPart2-14" 도 받은 후 15강을 따라하면서 아까와 동일하게 매 코드작성마다 디버깅확인을 해봤더니, 이 파일 또한 정확히 7:42부분에

IABGameInterface* ABGameMode = Cast<IABGameInterface>(GetWorld()->GetAuthGameMode()); 코드를 작성 후, Interface/ABGameInterface.h 헤더를 포함시키고 그 즉시 F5를 하면 위와 동일한 상황에서 동일한 에러가 뜹니다.

 

근데 신기한건, 깃허브에 올려주신 "UnrealProgrammingPart2-15" 도 받아서 F5를 눌렀더니 이것은 문제 없이 에디터가 켜집니다. 어떤 차이가 있길래 이것은 켜지는걸까요...?

어떤 문제로 인해 저 시점에 아래와 같은 에러가 발생하는지 궁금합니다.

 

 


 

 

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보

오류 MSB3073 "F:\UE_5.4\Engine\Build\BatchFiles\Build.bat ArenaBattleEditor Win64 Development -Project="C:\Users\qkrwo\Downloads\UnrealProgrammingPart2-14\UnrealProgrammingPart2-14\ArenaBattle.uproject" -WaitMutex -FromMsBuild -architecture=x64" 명령이 종료되었습니다(코드: 6). ArenaBattle C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44

오류(활성) E1455 'override'로 선언된 멤버 함수는 기본 클래스 멤버를 재정의하지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Core\Public\Serialization\ArchiveProxy.h 157

오류(활성) E1455 'override'로 선언된 멤버 함수는 기본 클래스 멤버를 재정의하지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Core\Public\Serialization\ArchiveProxy.h 167

오류(활성) E0020 식별자 "FTextureBuildSettings"이(가) 정의되어 있지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\Texture.h 2017

오류 C2027 정의되지 않은 형식 'AGameModeBase'을(를) 사용했습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 88

오류 C2338 static_assert failed: 'Attempting to cast between incomplete types' ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 88

오류 C2139 'AGameModeBase': 정의되지 않은 클래스는 컴파일러 내장 형식 특성 '__is_base_of'에 대한 인수로 사용할 수 없습니다. ArenaBattle C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits 1298

오류 C2338 static_assert failed: 'Attempting to use Cast<> on a type that is not a UObject or an Interface' ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 135

 

 

 

 

 

 

답변 3

1

이득우님의 프로필 이미지
이득우
지식공유자

네 저도 해당 문제는 헤더 추가로 해결하는데, 컴파일 메커니즘에 좀 복잡하다 보니 프로젝트마다 다르게 인식 되는 경우가 있는 것 같아요.

아무래도 헤더를 추가하는 것이 안전하니 차후에 소스를 업데이트 하겠습니다

0

hush park님의 프로필 이미지
hush park
질문자

본문에서 발생한 에러는 ABStageGimmick.cpp 에

#include "GameFramework/GameModeBase.h" 를 삽입하니 정상화되었습니다.

0

안녕하세요, 인프런 AI 인턴입니다.

hush park님께서 언급하신 오류 메시지는 AGameModeBase와 관련된 컴파일 문제입니다. 이 문제는 종종 헤더 파일 누락이나 프로젝트 설정과 관련하여 발생할 수 있습니다. 기본적인 접근 방법은 다음과 같습니다.

1. 헤더 파일 확인

AGameModeBase와 관련된 문제가 발생할 때는 해당 클래스와 관련된 헤더 파일이 포함되지 않았기 때문일 가능성이 큽니다. 따라서, GameModeBase가 정의된 헤더 파일을 추가해보는 것이 좋습니다.

#include "GameFramework/GameModeBase.h"

2. 프로젝트 설정 확인

프로젝트 설정에서 UObject인터페이스 관련 설정이 올바른지 확인할 필요가 있습니다. 특히, 언리얼 엔진이 특정 버전 이상으로 업데이트된 경우에는 이전에 잘 작동하던 설정이 변경될 수 있습니다.

3. 엔진 버전 문제

다른 엔진 버전 간의 변경점 때문에 생기는 문제일 수 있습니다. 이전 버전에서는 정상 작동하지만, 최신 버전에서는 문제가 발생할 수 있습니다. 문제 발생 시점과 해결된 프로젝트 간의 차이점을 인지하고 필요한 경우 같은 엔진 버전에서 작업을 진행해보세요.

4. 기존 해결 사례 참조

비슷한 문제가 발생한 다른 사례를 통해 해결 방법을 알려드릴 수 있습니다. 아래 게시물들을 참고해서 유사한 문제를 해결한 방법을 참고해보세요:

이외에도 엔진 커뮤니티 또는 공식 문서를 참조하여 발생할 수 있는 일반적인 문제와 그에 대한 해결 방법을 찾아보실 것을 권장합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

hush park님의 프로필 이미지
hush park

작성한 질문수

질문하기