유니티로 프로젝트 만들어 보려하는데
유니티에서 스크립트를 C#을 사용한다.
C#은 코드 작성이 너무 쉽고 빠르다. 개편하다. 세상에서 가장 편한 No.1 언어라고 생각한다.
---------
유니티는 공식적으로 C# 7.3까지만 지원한다.
닷넷 프레임워크, 닷넷 스탠다드, 닷넷 코어, 닷넷 참 복잡해보일텐데
간단하게 정리해보겠다.
.Net Framework는 4.8까지 나왔고 이게 마지막이다. 이제 더 이상 업데이트 없다.
.Net Standard는 2.1까지 나왔고 이게 끝이다. 이제 더 이상 업데이트 없다.
.Net Core는 3.1(LTS)까지 나왔고 역시 이게 끝이다.
이제 앞으로는 모두 .NET 으로 통합된다. 2020년 11월에 .NET 5 나오고 다음 해에 .NET 6 나오고 매해 1씩 증가할 예정이라고 한다.
--------
MS에서 공식적으로 .Net Framework 4.x 버전과 .Net Standard 2.0 까지는 C# 7.3까지만 지원한다고 한다.
그런데 지금 당장 .Net Framework에서도 8.0의 전체 기능은 아니더라도 쓸 수 있는 방법이 있다.
https://stackoverflow.com/questions/56651472/does-c-sharp-8-support-the-net-framework
여기에 보면 어떤 기능 쓸 수 있고, 못 쓰는지 자세히 나와있는데 대부분 쓸 수 있다.
--------
사용 방법은 유니티 2020 2.0 a16 버전부터 유니티 패치 노트에 C# 8 컴파일 된다고 적혀있으니
최신 2020 2.0 beta 이상 버전을 설치하고
유니티 프로젝트 생성하고 스크립트 cs파일 생성하고 비주얼 스튜디오에서 열고 나서
유니티 프로젝트 폴더 찾아가면 csproj 확장자 파일이 있는데 그걸 메모장에서 열면
<LangVersion>7.3</LangVersion>
이 섹션의 값을 8.0으로 고쳐주고 VS, Unity 모두 닫고 다시 실행하면 된다.
확인해보니 잘 작동된다.
C# 8.0의 IDisposal 개체의 using문 사용시에 블럭 범위 설정이 필요없이 using 선언한 부모 블럭을 벗어나면 알아서 해제해주기에 들여쓰기 낭비를 줄일 수 있어서 코드 작성이 훨씬 깔끔해지고 using 중첩 시의 더러움을 피할 수 있어서 좋다.
swich문도 엄청 간결하고 깔끔해져서 좋다.
그외 왜 많은 세계 각국의 유니티 개발자들이 유니티에서 C# 8.0 지원 방법을 찾아다는지는 써보면 개편하다는 점을 이해하게 된다.
뭐가 더 편해졌는지는 위에 스택오버플로우 링크 단 것에서 features들 링크 정리된 거 있으니 그냥 눌러보고 코드보면 알 수 있음
---------
그리고 또 하나의 삽질 예방
나처럼 비주얼 스튜디오 2019가 먼저 설치된 상황에서 유니티를 설치했다면 VS와 연결이 제대로 안되어 있을 것이다.
유니티 -> 편집 -> 환경 설정 -> 외부 도구 -> 외부 스크립트 편집기 여기를 클릭해서 VS 2019 16.x.x 이런 각자 설치된 VS 선택해주고
유니티 프로젝트 폴더가서 이미 .snl .csproj 솔루션 관련 파일 생성되었다고 지워버리고
다시 유니티에서 스크립트 파일 더블클릭하나 cs 스크립트 파일을 우클릭해서 컨텍스트에서 Open C# Project을 눌러서 VS를 실행시킨다.
프로젝트가 제대로 불러져와서 인텔리센스 잘 작동되면 됐고, 제대로 완료되지 않았다며 솔루션 탐색기에서 제대로 표시가 안되면 솔루션 탐색기에서 솔루션, 프로젝트, 항목들 우클릭해보면 Reload하는 메뉴 보일텐데 그것을 클릭하면 제대로 프로젝트 관련 설정되고 솔루션 탐색기에서 레퍼런스 등등 제대로 나올 것임
-------------
오 ㅅㅂ 이걸로 몇시간 삽질했네
msbuild 프로젝트 버전 바꾸라는 말을 길게도 써놨네..
이런 게 컨텐츠 양산이라는 거다. 최대한 페이지에 머무는 시간을 늘려야 살아남는 세상이다.
네이버 블로그 해라
그런 돈 안되는 짓은 너나 해라.
네이버 블로그 장사하라구..좆같은 이모티콘 쓰면서 말 돌리구...
그런 돈되는 일은 너나 많이 해라. 난 그냥 현재에 만족하면서 살래.