각 상호작용 가능한 아이템별로 서로 다른 인터랙션 기능을 주기 위해 BlueprintImplementable 함수와 BlueprintCallable 함수를 만들었고, 해당 기능을 넣기 위해 BP에 함수를 넣어주었다.
그런데 언리얼 에디터를 종료했다가 다시 켜면 항상 블루프린트 함수들이 깨져있었고 컴파일 에러때문에 실행조차 되지 않았다.
이 상태에서 문제되는 노드들을 제거해주고 Rider(VS / VSCode) 등으로 솔루션 빌드해주고 노드들을 다시 연결해주면 사실 일시적으로 고쳐지긴 하나.. 이 또한 언리얼 재시작시에는 똑같은 문제가 발생했다.
위의 컴파일에러들은 Chap1_SeeSaw를 상속받는 Seesaw BP 클래스를 Object Reference로 지정해주고 Chap1_SeeSaw 클래스에 구현되어 있는 BlueprintCallable함수들을 불러왔지만 언리얼 상의 에러로 인해 계속 연결이 끊기는 상황을 캡쳐한 모습이다.
솔직히 구글링해봐도 별다른 해답을 얻을 수 없었어서 에디터와 에디터의 캐시 데이터등에 문제가 있을 것이라고 생각했는데 아직도 원인은 찾을 수 없었다.
뭐 하여튼 프로젝트 폴더에서 /Saved, /Intermediate, /Binaries 등 삭제해도 되는 폴더들이 존재한다.
자세한 건 언리얼 포럼에 나와있으니깐 참고하면 좋을 것 같다.
Which folder contents can be deleted to reduce the size of my project?
I’m having a bit of an issue with my project rapidly growing in size. The project started off at around 2GB which was absolutely fine. It grew a bit more due to adding content, however it’s now on 7.33GB (there is no way I added that much content, my c
forums.unrealengine.com
Binaries
C++ 클래스를 사용하는 경우 Binaries 폴더가 생기는데 이는 C++ 코드를 컴파일 시킨 결과들을 저장하게 된다. 제거해도 빌드할 때 마다 생성되니깐 컴파일 시 문제가 있다면 이 폴더를 삭제하고 다시 빌드하는 것도 방법이다.
Intermediate
프로젝트에 필요한 임시 파일들을 저장한다. 이 폴더 또한 제거해도 프로젝트 파일을 우클릭해서 Generate Visual Studio project files를 통해 재생성할 수 있다.
Saved
말 그대로 각종 세이브 파일들을 저장한다. Auto Save, screenshot 등이기에 제거해도 큰 무리가 없다고 한다.
솔직히 이 셋 중 정확히 어디에서 문제가 발생했다라고 알지 못해서 세 폴더 전부 지웠다.
1. 에디터를 닫고(IDE는 닫지말고)
2. 이 세 폴더를 찾아 지우고
3. 사용하는 IDE에서 솔루션 빌드한 후에
4. 빌드가 완료되면 위에 사진처럼 프로젝트 파일 Generate Visual Studio project files를 통해 프로젝트를 다시 생성해준다.
우선 내 경우는 이런 식으로 재생성해주고 프로젝트를 열었더니 해결되었다.