Version: 2020.3
言語: 日本語
Unity における .NET の概要
安定したスクリプティングランタイム - 既知の制限

.NET プロファイルのサポート

Unity は多くの .NET プロファイルをサポートしています。各プロファイルは、.NET クラスライブラリと相互作用する C# コードのための様々な API サーフェスを提供します。Other Settings パネルの Api Compatibility Level オプションを使用して、Player 設定 (Edit > Project Settings の順に移動し、Player カテゴリを選択) で .NET プロファイルを変更できます。

古いスクリプティングランタイム

旧バージョンのスクリプティングランタイムは、.NET 2.0 サブセットと .NET 2.0 の 2 つの異なるプロファイルをサポートしています。両方とも、Microsoft の .NET 2.0 プロファイルと緊密に連携しています。.NET 2.0 サブセットプロファイルは .NET 4.x プロファイルよりも小さく、ほとんどの Unity プロジェクトで使用されるクラスライブラリ API にアクセスできます。これは、モバイルなどのサイズが制約されたプラットフォームにとって理想的な選択であり、マルチプラットフォームをサポートするための一揃いのポータブル API を提供します。デフォルトでは、ほとんどの Unity プロジェクトは .NET Standard 2.0 プロファイルを使用します。

安定したスクリプティングランタイム

安定したスクリプティングランタイムは .NET Standard 2.0 と .NET 4.x の 2 つの異なるプロファイルをサポートします。.NET Standard 2.0 プロファイルは、従来のスクリプティングランタイムからの .NET 2.0 と .NET 2.0 Subset プロファイルと関連がないため、少し誤解を招く可能性があります。そうではなく、.NET Standard 2.0 プロファイルに対する Unity のサポートは、.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 サポートなし サポートなし

ノート:

  • .NET Standard のどのバージョンに対してコンパイルされたマネージプラグインであっても Unity で動作します。
  • 制限ありのサポートとは、.NET Framework からのすべての API が .NET Standard 2.0 プロファイルに存在する場合、Unity がその設定をサポートすることを意味します。ただし、.NET Framework API は .NET Standard 2.0 プロファイルのスーパーセットなので、一部の API は使用できません。

トランスポート層セキュリティ (TLS) 1.2

  1. 2 以降、Unity は WebGL を除くすべてのプラットフォームで完全な TLS 1.2 サポートを提供します。これは UnityWebRequest API とすべての .NET 4.x API を通じて行われます。

証明書の検証は、使用可能な場合は、プラットフォーム特有の証明書ストアによって自動的に行われます。証明書ストアへアクセスできない場合、Unity は埋め込まれたルート証明書ストアを利用します。

.NET 3.5 以下の TLS サポートはプラットフォームごとに異なり、どの機能がサポートされているかは保証されていません。


  • 2018–03–15 修正されたページ

  • .NET プロファイルのサポートは 2018.1 で追加NewIn20181

Unity における .NET の概要
安定したスクリプティングランタイム - 既知の制限