[언리얼5] 언리얼 5.1 라이브 코딩 사용 후 데이터 사라지는 현상 정리
언리얼 5에는 라이브 코딩(Live Coding)이라는 시스템이 도입되었습니다.
이는 엔진이 실행 되고 있는 동안 C++ 코드릴 리빌드하고 바이너리를 패치하는 시스템을 말하며 언리얼 4에 있던 컴파일 및 핫 리로드와는 다른 시스템입니다..
엔진 화면의 오른쪽 아래에 디스크 조각 모음 같이 생긴 버튼이 라이브 코딩 실행 버튼입니다.
해당 버튼을 누르면 라이브 코딩이 실행되고 즉각적으로 언리얼 에디터에 변경점이 반영되는 것을 볼 수 있습니다.
다만 이 기능 때문인지 라이브 코딩과 IDE 빌드를 번갈아 사용하다보면 비정상적으로 에러가 발생하기도 합니다.
문제 1 비쥬얼 스튜디오 내에서 빌드 실패
라이브 코딩을 활성화한 상태에서 비쥬얼 스튜디오 빌드를 하려고 하면 에러가 발생합니다.
완전히 정상적인 코드를 라이브 코딩을 하면 성공하지만 비주얼 스튜디오 내에서 Ctrl + Shift + B를 통해 빌드하면 아래와 같은 에러가 발생합니다.
FRHIViewableResource가 정의되어 있지 않다고 하는데 이는 라이브 코딩과 서로 충돌되기 때문입니다.
따라서 둘 중 하나만을 사용해야합니다. 언리얼 4의 핫리로드 기능이 익숙하다면 라이브 코딩을 끄고 매번 빌드하는 것이 편할 것 같습니다.
라이브 코딩을 비활성화 하는 방법은 라이브 코딩 버튼 옆의 점3개를 클릭하면 비활성화할 수 있는 버튼이 나타납니다.
이밖에도 <편집 - 에디터 개인 설정 - 일반 - 라이브 코딩> 에서 비활성화 할 수 있습니다.
비활성화 한 뒤 다시 라이브 코딩 버튼을 누르면 언리얼 4처럼 핫리로드가 동작합니다.
관련 스택 오버 플로우 < 링크 >
문제 2 라이브 코딩으로 변수를 추가한 뒤 값을 변경하고 에디터를 재시작하면 변수가 사라지는 현상
코드에 변수를 하나 추가한 뒤 라이브 코딩으로 에디터에 적용시킨 다음 값을 변경시킵니다.
위 스샷처럼 기본 값이 99인 변수를128로 변경하고 저장한 뒤 에디터를 재시작합니다.
재시작을 하면 멀쩡히 존재하던 MyInt 변수가 사라져 있습니다. 이 상태에서 다시 라이브 코딩을 하면 변경한 128이 아닌 99로 화면에 나타납니다. 그렇다면 일전에 변경한 128은 그냥 날아가는 것일까요? 그건 아닙니다. 에디터를 종료한 뒤 비주얼 스튜디오에서 재빌드를 하면 128로 다시 나타납니다.
이러한 이슈가 발생하는 원인은 라이브 코딩 자체가 변경점을 에디터에만 저장하고 로컬 디스크에 저장하지 않는다는 것에 있습니다.
이러한 이유들로 인해 개인적으로는 핫 리로드를 하는 것이 더 편한 것 같습니다. 언리얼4에서도 계속 그렇게 해왔었고요.
'[Unreal5] > 오류 수정' 카테고리의 다른 글
[언리얼5] 언리얼 5.1 C++ 프로젝트 생성 실패 해결 방법 (0) | 2022.12.27 |
---|---|
[Unreal5] 언리얼5 실행 오류, 설치 후 시작 시 그래픽 드라이버 오류 문제 (0) | 2022.05.23 |