C# - Unity와 .NET

출처

2016년 여름

  • Unity가 .NET Foundation에 참가

2017년 여름 Unity 2017.1 출시

  • .NET 3.5 Equivalent에 더하여 .NET 4.6 Equivalent가 Experimental로 선택할 수 있게 됨

2018년 초 여름 Unity 2018.1 출시

  • .NET 4.x Equivalent가 Experimental에서 안정 버전으로

2018년 겨울 Unity 2018.3 출시

  • .NET 4.x Equivalent가 Default로, .NET 3.5 Equivalent는 비 추천으로

2019년 중 Unity 2019 출시 사이클 중

  • .NET 3.5 Equivalent가 이용 불가로 될 예정


Scripting Runtime Version을 바꾸면 Api Compatibility Level의 선택기가 바뀐다

Api Compatibility Level을 바꾸면 프로젝트에서 참조하는 .NET의 DLL이 바뀐다

.NET 4.x를 선택한 경우

  • .NET Framework 4.x의 API 모두를 제공한다.
  • API로서 제공되지만 모든 플랫폼에서 동작하는 것은 아니다. 실행 시 에러가 된다.
  • 빌드 결과물의 크기가 커진다.
  • 이것을 선택했을 때 .NET Standard 2.0 용 라이브러리도 사용할 수 있다.

.NET Standard 2.0을 선택한 경우

  • .NET 4.x에 제공된 API 중에서 이쪽에 없는 API도 있다.
  • 빌드 결과물의 크기가 작아질 수 있다.
  • 개발에 .NET Standard 2.0용 라이브러리를 사용할 수 있다.

Api Compatibility Level에서 .NET 4.x에서는 사용할 수 있지만 .NET Standard 2.0에서 사용할 수 없는 코드 예 System.Reflection.Emit

.NET Standard는 .NET Framework, .NET Core, Mono의 “.NET 구현” 클래스 라이브러리가 제공해야할 API 기능, 규격.

버전이 있으며, 버전 마다 API 개수가 다르다.

  • 1.0: 7949개의 API
  • 1.6: 13501개의 API
  • 2.0: 32638개의 API

Unity 2018.1 이후는 .NET Standard 2.0을 지원하고 있음.

.NET Standard 1.0용 라이브러리를 사용할 수 있는 플랫폼
Unity 2018.1, .NET Core 1.0, .NET Framework 4.5, Mono 4.6 이상

.NET Standard 2.0용 라이브러리를 사용할 수 있는 플랫폼
Unity 2018.1, .NET Core 2.0, .NET Framework 4.6.1, mono 5.4 이상

.NET Standatd 버전 표

현재 .NET Standard의 최신 버전은 .NET Standard 2.1


이 글은 2019-10-19에 작성되었습니다.