언리얼엔진 학습 및 과제

언리얼 엔진에서 빌드가 안될때

park94128 2025. 9. 23. 23:51

계속된 알고리즘 설명글 대신 언리얼 관련 글을 쓰게 되었다. 언리얼 엔진 과제를 진행하던 도중 빌드가 안되는 현상이 발생했었고 이를 해결하는 방법, 그리고 예방법을 적기 위해서다.

 

1. 증세

 

다른 프로젝트에서 발생한 다른 문제였는데 처음 상황은 똑같아서 가져왔다.

프로젝트를 열었는데 여러가지 에러 메세지가 나를 반겨줬다.

그리고 맵에 배치된 액터가 있던 폴더가 사라졌다. 모든 C++로 작성한 액터가 사라지면서 그와 동시에 빈 폴더가 되면서 자동으로 삭제됐기 때문이다. 그리고 이 상태에서 코드 컴파일을 시도해보면...

Warning : rebindpackages not possible (no packages specified) 라는 내용이 로그에 남으면서 컴파일이 시작이 안된다.

 

2. 해결 방법

나같은 경우 해결 방법은 간단했다.

- 절대로 맵을 '저장하지 말고' 에디터를 그대로 닫는다.

- 에디터가 닫힌 상태에서 IDE에서 빌드를 한다.

 

3. 추정되는 원인 및 예방

언리얼 엔진이 유니티 엔진에 비하면 생각보다 개발자에게 불편한 엔진이다. 예상하지 못한 에러가 언리얼 엔진에서 더 자주 발생되기도 하며 만약 프로젝트를 열기 전에 코드 단위에서 에러가 발생한 상태였다면 프로젝트가 열리지 않는 경우가 많다. 그럼에도 다수의 개발 참여에 유리함과 결과물의 뛰어나다는 장점이 매우 강력해서 안쓸 수가 없다.

 

결국 개발자가 알아서 몸을 사려야 한다. 이번 일과 관련해서는 아래 사항을 잘 기억하자.

 

A. IDE가 여러개 있다고 해서 번갈아 가며 쓰는건 자제하자

아마 내가 겪은 상황의 원인으로 추정된다. 지금 언리얼 엔진을 배우기 위해 선택한 IDE는 Jet Brain의 Rider를 쓰고 있다.

언리얼 엔진을 쓸때 Rider를 쓰면 처음 로딩때 얼마나 로딩됐는지 보여주면서 에러 표시를 하지 않는다. Visual Studio는 처음 로딩때 아직 언리얼 엔진 내부의 코드를 덜 가져와서 멀쩡한 코드가 에러로 표기되는 현상이 자주 발생해서 불편했는데 이를 Rider가 해결해줬다. 또한 UPROPERTY를 작성할 때 Rider에서 제공하는 인텔리센스가 작성 가능한 목록을 보여줘서 매우 편리했다. Visual Studio는 UPROPERTY 작성시 인텔리센스 및 자동 완성을 지원하지 않는다.

이래서 Rider를 쓴다.

하지만 Rider에서 오버로딩된 함수가 있을 경우 그 목록을 보여주는 방식이 불편했다.

Rider는 그냥 가능한 매개변수 목록을 보여줄 뿐인데 VS에서는 각 오버로딩된 함수별 설명이 나오는 등 이런 면은 VS가 더 좋았다.

그래서 일부 코드 편집을 위해 Rider를 끄고 잠시 Visual Studio로 옮겨서 편집했는데 그 이후 다시 Rider로 켜기 위해 프로젝트를 다시 열었더니 그 때 위 증세가 나타났다. 그래서 IDE를 잠깐 옮긴 것이 원인이라고 생각했다.

 

B. 액터 등 새로운 코드 파일이 추가될 경우 일단 에디터를 끄고 빌드해보자

에디터가 켜진 상태로 새로운 코드 생성을 지속하면 코드에 문제가 없어도 에러가 발생할 가능성이 생긴다고 한다. 이것도 역시 무언가 문제가 생기면 일단 에디터를 끄고 빌드를 해볼 필요가 있다.

아마 VS와 같이 쓸 때 에디터에서 코드 추가하면 VS에서 이런 창이 뜰 것이다. 일반적으로는 다시 로드하면 아무 문제가 없어야 하는데 꼭 그렇지 않기도 하다.

 

언리얼 엔진은 IDE와 뭔가 척을 진게 있는 것도 아닌데 계속 에디터를 끄고 빌드할 상황이 비교적 자주 생기는게 문제다.