Unity는 여러 .NET 프로파일을 지원합니다. 각 프로파일은 .NET 클래스 라이브러리와 상호작용하는 C# 코드에 대해 다른 API 표면을 제공합니다. 플레이어 설정(편집(Edit) > 프로젝트 설정(Project Settings) > 플레이어(Player))에서 기타 설정(Other Settings) 섹션의 API 호환성 수준(Api Compatibility Level) 옵션을 사용하여 .NET 프로파일을 변경할 수 있습니다.
레거시 스크립팅 런타임은 두 가지 프로파일인 .NET 2.0 Subset과 .NET 2.0을 지원합니다. 두 프로파일 모두 Microsoft의 .NET 2.0 프로파일과 긴밀한 연관이 있습니다. .NET 2.0 Subset 프로파일은 .NET 4.x 프로파일보다 더 작으며, 이 프로파일을 통해 대부분의 Unity 프로젝트에서 사용하는 클래스 라이브러리 API에 액세스할 수 있습니다. 이 프로파일은 모바일처럼 크기 제약이 있는 플랫폼에 적합하고, 여러 플랫폼을 지원하는 여러 이식 가능한 API를 제공합니다. 기본적으로 대부분의 Unity 프로젝트에서는 .NET Standard 2.0 프로파일을 사용해야 합니다.
안정적인 스크립팅 런타임은 두 가지 프로파일인 .NET Standard 2.0과.NET 4.x를 지원합니다. .NET Standard 2.0 프로파일의 이름은 레거시 스크립팅 런타임의 .NET 2.0 및 .NET 2.0 Subset 프로파일과 관련이 없기 때문에 약간 오해의 소지가 있을 수 있습니다. 그 대신 Unity의 .NET Standard 2.0 프로파일 지원은 .NET Foundation에서 퍼블리시한 같은 이름의 프로파일과 일치합니다. Unity의 .NET 4.x 프로파일은 .NET Framework의 .NET 4 시리즈(.NET 4.5, .NET 4.6, .NET 4.7 등) 프로파일과 일치합니다.
.NET 4.x 프로파일은 외부 라이브러리와 호환성이 필요하거나 .NET Standard 2.0에서 사용할 수 없는 기능이 필요한 경우에만 사용하십시오.
Unity의 목표는 모든 플랫폼에서 .NET Standard 2.0 프로파일의 API를 거의 대부분 지원하는 것입니다. 모든 플랫폼에서 .NET Standard를 완전히 지원하지는 않지만, 크로스 플랫폼 호환성이 목표인 라이브러리는 .NET Standard 2.0 프로파일을 대상으로 해야 합니다. .NET 4.x 프로파일에는 훨씬 더 큰 API 표면이 포함되어 있고, 표면의 일부분은 소수의 플랫폼에서만 사용할 수 있거나 아예 사용 가능한 플랫폼이 없습니다.
Unity 외부에서 컴파일된 관리되는 코드 플러그인은 Unity에서 .NET Standard 2.0 프로파일 또는 .NET 4.x 프로파일과 함께 사용할 수 있습니다. 다음은 Unity가 지원하는 설정에 대해 설명하는 표입니다.
API Compatibility Level: | ||
---|---|---|
.NET Standard 2.0 | .NET 4.x | |
관리되는 플러그인의 컴파일 대상: | ||
.NET Standard | 지원됨 | 지원됨 |
.NET Framework | 제한됨 | 지원됨 |
.NET Core | 지원되지 않는 기능 | 지원되지 않는 기능 |
참고:
2018.2에서 Unity는 WebGL을 제외한 모든 플랫폼에서 완전한 TLS 1.2 지원을 제공합니다. 이는 UnityWebRequest API와 모든 NET 4.x API를 통해 이루어집니다.
인증서 확인은 플랫폼별 인증서 저장소(이용 가능한 경우)에서 자동으로 수행됩니다. 인증서 저장소에 액세스할 수 없는 경우 Unity는 내장된 루트 인증서 저장소를 사용합니다.
.NET 3.5 이하에 대한 TLS 지원은 플랫폼에 따라 다르며, 어떤 기능을 지원한다고 보장할 수 없습니다.