2

私は C# を使用して、複数のプラットフォームで使用したい MonoGame を使用してゲームを作成しています (MonoGame が実行できることはわかっています)。

C# で .dll を作成し、ライブラリを再コンパイルせずに他のオペレーティング システム (できれば iOS、Android、MacOS) からロードする方法はありますか? 各プラットフォーム用の「ローダー」アプリケーションを作成する準備はできていますが、プロジェクト全体を書き直すつもりはありません。

MonoTouch などの有料製品を使用せずに、これらのプラットフォームで .net dll から関数をロードする (つまり、ゲームをロードする) 方法があることを願っています。

4

2 に答える 2

2

基本的に、.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

于 2013-08-08T13:41:44.390 に答える
1

Xamarin-Framework を見ることができます。ただし、常にプロジェクトを再コンパイルする必要があります。 ザマリン

これらのプラットフォームでは、MonoTouch などの有料製品を使用する必要はありません。

これは難しいでしょう。

于 2013-08-08T13:10:57.980 に答える