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

언리얼과튀김우동님의 프로필 이미지
언리얼과튀김우동

작성한 질문수

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

코드로 PlayerControllerClass 지정하는 과정에서 빌드 실패

해결된 질문

작성

·

251

0

안녕하세요 섹션1 언리얼 엔진 게임 제작 기초 강의 중 궁금한거 세가지가 생겨서 질문드립니다.

1. PlayerControllerClass 지정하는 과정에서 빌드 실패

AABGameMode::AABGameMode()

{

PlayerControllerClass = AABPlayerController::StaticClass();

}

livdcodingFailed.png

이렇게 게임모드 생성자에서 특정 컨트롤러 클래스를 지정하는 부분 따라가던 중 라이브 코딩에서 사진과 같이 build failed 가 발생하였습니다. 어찌어찌 비주얼 스튜디오에서 솔루션 프로젝트 정리 눌러보고 다시 빌드해보니까 성공적으로 돌아갔습니다. 근데 처음에는 왜 실패했는지 전혀 모르겠네요 ㅠ

2. cpp 파일에서 inlude 자동 추가

교수님 강의에서는 언리얼 에디터에서 GameMode 클래스를 생성하면 바로 cpp파일에서
#include "Game/ABGameMode.h"

#include "ABGameMode.h"

이 두가지 경로가 자동 추가되는데 제가 했을 때는 #include "Game/ABGameMode.h" 이거 하나만 추가되었습니다. 그냥 무시하고 넘어가도 되는 부분인가요?

 

3. 헤더파일이 디렉토리 또는 빌드 시스템 경로에 없습니다.

ABGameMode 클래스를 만들면서 cpp 파일에 자동 추가 된 #include "Game/ABGameMode.h" 부분에서 F12를 누르면

이와 같은 에러가 발생합니다. 이 또한 무시해도 괜찮은 부분일까요?

답변 1

0

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

안녕하세요.
언리얼 엔진이 버전마다 조금씩 동작이 다르고, 예외 상황들도 많아서 재현이 불가능할 수도 있어서 아는대로만 먼저 답신드립니다.

  1. 빌드 결과가 조금 이상하다 싶으면, 에디터를 종료하고 비주얼 스튜디오로 다시 프로젝트를 재생성하고 비주얼스튜디오에서만 컴파일을 진행해보세요. 라이브코딩은 생산성을 높이기 위해 제공하는 보조 기능이다보니, 에디터 설정에 큰 영향을 미치는 클래스 구조 변경, 생성자 함수를 수정하는 경우 원인 모를 문제가 발생할 가능성이 매우 높습니다. 컴파일에 성공하더라도 100% 올바로 동작한다고 보장하기 어렵습니다. 이전 컴파일에서 설정된 기본 값으로 디버깅이 진행될 수도 있기 때문입니다. 아무튼 클래스 구조 변경, 생성자 코드는 에디터를 끄고 확실히 검증하는 것을 추천합니다.

  2. 버전마다 다를 수도 있을 것 같은데, 저는 프로젝트 경로 기준으로 구조 잡는 것을 선호합니다. 게임 폴더에 있는 헤더라면 Game/ABGameMode.h 가 좋을 것 같습니다. 어짜피 같은 파일을 가리키기 때문에, 컴파일러가 알아서 합쳐줄 것 같습니다만, 가능하다면 첫 번째 것만 유지하는 것이 좋겠네요.

  3. 가끔 인텔리센스 작동이 늦어서 동작안할 때가 있습니다. 너무 오래걸리면 비주얼 스튜디오를 다시 재시작하면 잘 동작할 수 있습니다. 본 강좌는 비주얼 스튜디오로 만들어졌지만, 이런 부분이 불편하면 Rider같은 다른 IDE로 변경하는 것도 나쁘진 않은 선택입니다. ^^

궁금증이 해결되었습니다. 빠른 답변 정말 감사합니다!

언리얼과튀김우동님의 프로필 이미지
언리얼과튀김우동

작성한 질문수

질문하기