유니티 프로젝트 관련 경고 메시지 정리

2020. 8. 14. 11:16Unity/Problems

1. Open Project in Non-Matching Editor Installation

1. 메시지 내용

<프로젝트 버전과 에디터 버전이 일치하지 않는 경우>

 - 열려고 하는 프로젝트가 마지막으로 저장된 버전과, 지금 열려고 하는 에디터의 버전이 맞지 않을 때 발생한다. 위의 스크린샷을 예로 들면 저장된 프로젝트는 2019.3.7f1 버전이고, 현재 에디터는 2019.3.6f1 버전이기 때문에 호환이 맞지 않을 수 있다는 의미이다.

여기서 Continue를 누르게 되면 일부 패키지가 업데이트 될 수 있으며, 그렇게 변경된 프로젝트 패키지 목록은 프로젝트 폴더 내에 있는 Logs/Packages-Upgrade.log 파일에서 확인이 가능하다고 쓰여있다.

 

보통 여기서 Continue를 누르는 경우 프로젝트 내에서 각종 에러가 터지는데, 그 중에서도 가장 당황했던 건 사용하던 모듈이 전부 없어져서 다음과 같이 Platform 변경 메시지가 뜬다.

<강제 Platform Switch 메시지>

해석하자면, 지금 열려는 프로젝트의 빌드 대상 플랫폼에 Android 모듈이 없다는 뜻이다.

즉, 플랫폼 모듈은 에디터 버전마다 각각 따로 관리되고 있다는 의미이다.

 

여기서 SwitchTarget을 누르면, 해당 프로젝트의 플랫폼이 강제로 Window 플랫폼으로 바뀌게 되버린다. 다른 선택지는 Exit Unity. 결국 바꿀거 아니면 끄라는 소리인데. 이걸 제대로 읽지 않고 별 생각 없이 SwitchTarget을 누르면 플랫폼에 맞지 않는 기존의 셋팅과 코드들 때문에 마구잡이로 에러가 뜨게 된다.

<Android Platform 사용 불가 상태>

처음엔 찾아봐도 원인을 도저히 모르겠기도 하고, 애당초 R&D 개념으로 부분테스트를 진행하던 프로젝트들이었기 때문에 새로 만들어도 부담이 적어서 대부분 프로젝트를 새로 만들었다. 만약 한참 진행된 프로젝트였고, 버전 관리를 꾸준히 안했다면 멘탈 터지는 상황이 올지도 모르겠다.

 

2. 해결 방법

<Unity Hub에서의 편집기(에디터) 버전과 프로젝트 버전의 위치>

- 해결방법은 의외로 간단하다. 열려고 하는 프로젝트와 같은 버전의 에디터로 열면 된다. 그림에서 보면 위의 에러내용 예시처럼 저장된 프로젝트의 버전과 에디터 버전이 일치하지 않는다. 저기서 에디터 버전을 수정하면 된다.

 

3. 고찰

<프로젝트와 에디터의 버전 불일치 경고 메시지>

- 원래는 저렇게 프로젝트의 버전보다 하위버전의 에디터로 프로젝트를 열려고 하면 위와 같이 경고 메시지가 떠야 정상이다. 내용은 위에 나와있는 영문으로 된 경고 메시지와 크게 다르지 않다.

 

하지만 이번에 문제가 생겼던 내 경우엔 한국어로 된 저런 경고 메시지가 뜨지 않았었다. 재현해보고 기록하려고 했으나 잘 안되서...일단 기록만 남긴다.

 

했던 걸 복기해보면, GPGS 연동 테스트를 마친 후, 그 프로젝트에 Facebook 연동 테스트를 하기 위해 외부 플러그인을 임포트하는 과정에서 뭔가 중복되는 어셋의 내용이 있네 어쩌네 하는 경고를 대충 읽고 막 넘겼었다. 추측하건대 아마 unpackage 파일을 임포트 하는 과정에서 뭔가 꼬인 것 같다.

 

이럴 때 일반적으로 해볼 수 있는 시도 중에서는 프로젝트 폴더 내에 모든 쿠키? 캐싱데이터?(*정확하지 않다) 등을 삭제하는 방법이 있다.

다음 폴더를 제외하고 모두 삭제해서 정리한 후 프로젝트를 다시 열어보면 된다.

 

1. Assets

2. Packages

3. ProjectSettings

 

<프로젝트 폴더 정리 후의 모습>

 

2. API Update Required

1. 메시지 내용

<API를 자동으로 업그레이드 한다는 메시지>

- 내 경험상으론 외부 Asset이나 모듈 Unpackage 파일을 임포트 할 때 발생하는 것을 자주 봤다.

해석하자면, 지금 열려는 프로젝트에 오래된 API를 사용하는 스크립트나 어셈블리가 포함되어 있으므로 유니티 에디터에서 자동으로 그것들을 업그레이드 해주겠다는 의미이다. 다만, 업그레이드 전 꼭 백업을 해놓으라는 메시지가 포함되어있다. 아마도 API 변환 후 예상치 못한 문제가 생길 수도 있기 때문인 것 같다.

 

2. 해결 방법

- No Thanks를 누르면 임포트한 스크립트 내의 메서드 등에서 에러가 발생할 확률이 높다. 유니티의 버전이 올라갈수록 기존의 메서드들이 조금씩 바뀌어서 그런 부분을 수정한다는 의미로 Go Ahead를 누르면 되는 것 같다.

 

다만 백업은 확실히 한 후에 진행하도록 해야 한다. Go Ahead를 눌렀을 때, 제대로 돌아가지도 않으면서 기존 프로젝트까지 꼬이는 현상을 몇 번 겪었다. 정확한 이유는 모르겠으나, 개인적인 생각으로는 "현재 버전에서는 사용도 못하는데 대체될 메서드도 없는(혹은 찾지 못하는)" 경우가 있는게 아닐까 싶다.