基本的に、.NET/Mono アセンブリはすべて、ECMA 標準である CIL コードにコンパイルされます。
ただし、OS の仕様に依存しない方法でゲームをプログラムする必要があります。
- 特定の .NET アセンブリを参照しないでください (つまり、WCF がありません。WCF のサポートが限られているためです。WPF がまったくないか、WWF がありません)。
- OS 固有の DLL を参照しないでください (つまり、kernel32.dll への P/Invokes などはありません)。
- OS 固有のパスを使用したり、プリプロセッサ ディレクティブを使用して OS 固有のコードを作成したりしないでください (はい、これには再コンパイルが必要であり、おそらくこれを簡単に回避することはできません)。
Mono でのスレッド化にはいくつかの問題があるため、おそらくプリプロセッサ ディレクティブを使用してプラットフォーム固有のコードを作成する必要があります。
正直なところ、コードを再コンパイルしなければならないことに問題はないと思います。明確に記述されている場合は、ソリューション ファイルに新しいプロジェクトを追加し、プリプロセッサ フラグを設定するだけです。あとは、ソリューションをコンパイルし、bin フォルダーに複数の DLL を配置するだけです。プロジェクト全体を書き直す必要があるとは誰も言っていません (プロジェクトが既に終了していて、依存関係が言及されていない限り) 。 .
必要な Mono ランタイムを使用してアプリを (iOS などに) デプロイするだけです。このためには、おそらく Xamarin のようなものが必要になるか、独自の Mono ランタイムを接続する必要があります
参考リンク:
http ://www.mono-project.com/Compatibility
http://www.mono-project.com/MoMA