본문 바로가기

[언리얼5] 언리얼 5.1 라이브 코딩 사용 후 데이터 사라지는 현상 정리

Kwonriver 2022. 12. 28.
728x90

 

언리얼 5에는 라이브 코딩(Live Coding)이라는 시스템이 도입되었습니다.

이는 엔진이 실행 되고 있는 동안 C++ 코드릴 리빌드하고 바이너리를 패치하는 시스템을 말하며 언리얼 4에 있던 컴파일 및 핫 리로드와는 다른 시스템입니다.. 

 

엔진 화면의 오른쪽 아래에 디스크 조각 모음 같이 생긴 버튼이 라이브 코딩 실행 버튼입니다.

해당 버튼을 누르면 라이브 코딩이 실행되고 즉각적으로 언리얼 에디터에 변경점이 반영되는 것을 볼 수 있습니다.

다만 이 기능 때문인지 라이브 코딩과 IDE 빌드를 번갈아 사용하다보면 비정상적으로 에러가 발생하기도 합니다.

 


 

문제 1 비쥬얼 스튜디오 내에서 빌드 실패

라이브 코딩을 활성화한 상태에서 비쥬얼 스튜디오 빌드를 하려고 하면 에러가 발생합니다.

완전히 정상적인 코드를 라이브 코딩을 하면 성공하지만 비주얼 스튜디오 내에서 Ctrl + Shift + B를 통해 빌드하면 아래와 같은 에러가 발생합니다.

FRHIViewableResource가 정의되어 있지 않다고 하는데 이는 라이브 코딩과 서로 충돌되기 때문입니다. 

따라서 둘 중 하나만을 사용해야합니다. 언리얼 4의 핫리로드 기능이 익숙하다면 라이브 코딩을 끄고 매번 빌드하는 것이 편할 것 같습니다.

라이브 코딩을 비활성화 하는 방법은 라이브 코딩 버튼 옆의 점3개를 클릭하면 비활성화할 수 있는 버튼이 나타납니다.

이밖에도 <편집 - 에디터 개인 설정 - 일반 - 라이브 코딩> 에서 비활성화 할 수 있습니다.

비활성화 한 뒤 다시 라이브 코딩 버튼을 누르면 언리얼 4처럼 핫리로드가 동작합니다.

 

관련 스택 오버 플로우 < 링크 >

 

 

문제 2 라이브 코딩으로 변수를 추가한 뒤 값을 변경하고 에디터를 재시작하면 변수가 사라지는 현상

코드에 변수를 하나 추가한 뒤 라이브 코딩으로 에디터에 적용시킨 다음 값을 변경시킵니다.

 

 

위 스샷처럼 기본 값이 99인 변수를128로 변경하고 저장한 뒤 에디터를 재시작합니다.

 

에디터 재시작 후(좌), 라이브 코딩 다시 실행 시(우)

 

재시작을 하면 멀쩡히 존재하던 MyInt 변수가 사라져 있습니다. 이 상태에서 다시 라이브 코딩을 하면 변경한 128이 아닌 99로 화면에 나타납니다. 그렇다면 일전에 변경한 128은 그냥 날아가는 것일까요? 그건 아닙니다. 에디터를 종료한 뒤 비주얼 스튜디오에서 재빌드를 하면 128로 다시 나타납니다.

 

라이브 코딩 사용 시 변수가 사라지는 현상

 

이러한 이슈가 발생하는 원인은 라이브 코딩 자체가 변경점을 에디터에만 저장하고 로컬 디스크에 저장하지 않는다는 것에 있습니다. 

 


이러한 이유들로 인해 개인적으로는 핫 리로드를 하는 것이 더 편한 것 같습니다. 언리얼4에서도 계속 그렇게 해왔었고요.

728x90