Unityは異なるバージョンのC#を使用していますか、それともすべて同じですか?見た目は通常のC#とは異なりますが、通常のC#要素がいくつかあります。
Unityは異なるバージョンのC#を使用していますか、それともすべて同じですか?見た目は通常のC#とは異なりますが、通常のC#要素がいくつかあります。
回答:
他の回答で述べられているように、Unity 4.xはMono 2.6に基づいたMonoの修正版を使用しています
ほとんどの場合、これは.Net 2.0と互換性がありますが、Mono 2.6固有の互換性リストを追跡することはできませんでした。
見た目は通常のC#とは異なりますが、通常のC#要素がいくつかあります。
あなたの質問に対するコメントの1つで述べたように、これはおそらく言語自体ではなくUnityの特定のスクリプトAPIによるものです。
例として、典型的なUnityプロジェクトの多くのコードは、MonoBehaviorと呼ばれるクラスのサブクラスに含まれています。これらは、Unity Editor環境内のGameObjectsにドロップされるコンポーネントです。このアーキテクチャにより、C#コードはさまざまな点で(とにかく)典型的なC#コードとは異なります。
実際には、Unityの現在のC#バージョンで見逃している最大のC#言語機能は、非同期および関連するキーワードと機能のサポートです。Unityの同様の概念はコルーチンです。これらはメインスレッドで実行されるため、非同期ではありませんが、長時間実行されるコードを複数のフレームに分割できます。低レベルのマルチスレッドは引き続きサポートされています。
async
、C#ではマルチスレッドのように非同期ではありません。メインスレッドでも実行されます。コルーチンと非同期の使用上の観点からの最大の違いは、コードが実行される時間です。
Unity 4 は 、C#言語を含む.NETフレームワークの完全な実装であるMono 2.6を使用します。
どのように見えるかはわかりませんが、Unityは複数の言語をサポートしており、それらはすべて同じMonoランタイム上で動作します。C#とUnityScriptを混同している可能性はありますか?
Unityは通常のC#を使用します。
繰り返しになりますが、UnityでC#を作成するときは、多くのライブラリを使用しますが、私が知る限り、Unityでは、以下に示す違いを除いて、C#で可能なすべてのことが可能です。
Windows FormsおよびASPに関連する.Netのより具体的な領域は、Unityによる立ち入り禁止です。
Visual Studioを使用して編集およびコンパイル時エラーを作成できますが、Unity IDEでビルドして実行する必要があります。
Unityは、.Netのオープンソース実装であるMonoを使用します。これは、わずかな違いがあることを意味します。
Unityが使用するC#バージョンが「通常の」C#と異なるかどうかの質問は、他の投稿で回答されています。あなたは明示的に(Visual Studioの2010年以降で#4.0すなわちC)仕事でC#Iの使用を比較するとき、私は気づいた私は、わずかな違いを共有することになり、このような定期的なバージョンと異なる場合がありますいくつかの要素を求めるとユニティでC#、されているので、これ関数定義のパラメーターにデフォルト値を使用できないということです。つまり、C#の新しいバージョンを使用するには、プロジェクトをより慎重にセットアップする必要があります。詳細については、このリンクを参照してください。
編集: 私が知っている限り、これは非常に多くの人々に起こる誤解であるため、私はこの答えを残します。