2020.1 버전으로 프로젝트 쓰다가 2020.2로 업글했더니 아래와 같은 문제 발생함





viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fade62f936c38aa905a924057ace1b1552b38f6ea059faaffbdf57db5564e0913aa702c5e086fd


UnityEngine.UI, TMPro 두 namespace를 사용할 수 없음




viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fade62f936c38aa905a924057ace1b1552b38f6ea059faaffbdf57dc0633b6c73af103c5491f35


그러나 솔루션 탐색기에는 UnityEngine.UI가 올라가 있고

manifest.json 에도 "com.unity.ugui": "1.0.0"가 있음을 확인




viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fade62f936c38aa905a924057ace1b1552b38f6ea059faaffbdf57895262eac069ff52c559b65d


그리고 비주얼 스튜디오에서만 컴파일 에러가 뜨고 유니티에서는 뜨지 않는다




비주얼 스튜디오 2019 대신에 비주얼 스튜디오 코드를 쓰면 해결되는듯 했으나

비주얼 스튜디오 코드는 그냥 참조를 찾지도 않기 때문에 문제를 알려주지 않는 것이었을 뿐

문제가 해결된게 아니었음





구글링해서 알아낸 방법들


1. 라이브러리 폴더 삭제

2. 프로젝트 폴더에서 csproj 전부 삭제

3. 패키지 매니저에서 Unity UI 삭제 및 재설치

4. csproj 파일 열어서 참조 코드 직접 추가

5. Nuget에서 UnityEngine.UI 찾아서 추가

기타 등등


전부 다 해봤지만 해결 못함


그러다 해결법 겨우 찾음







viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fade62f936c38aa905a924057ace1b7835b88f6ed88f236042fff6617b52d34c7aea6a3d1c5e


먼저 비주얼 스튜디오를 닫고


프로젝트 폴더 내에 csproj를 전부 삭제하고


preferences 열고 외부 도구 들어가서 빨간 박스안에 있는 체크박스를 전부 체크해제하고


Regenerate project files를 누름


프로젝트 폴더에는 오로지 Assembly-CSharp.csproj 단 하나만의 csproj 파일만이 있어야 함


그러면 해결됨






viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec82fa11d02831da48f5f7e7e334e6e7e5eac8fade62f936c38aa905a924057ace1b1552b38f6ea059faaffbdf57da0130b1906ba307c5c00d02


참고로 2020.2 말고 2020.1 이하 버전에서는 저 체크박스가 존재하지도 않고 위 사진처럼 되어있음


2020.1 이하 버전을 오랫동안 쓰다가 2020.2 이후 버전을 설치하면 저 체크박스들이 기본적으로 전부 체크되어 있음


포멧을 자주 안한 내 잘못인듯


쨋든 해결~