web-dev-qa-db-ja.com

Unity 5で.NET 4.5コードを使用する

Unity3Dバージョン5を使用してゲームに取り組んでいます。このゲームでは、C#.NET4.5エンジンで既にプログラムされた厳格なビジネスルールを使用する必要があります。 Xamarin/Monoを使用して、Windows、Android、その他で使用できるようにしたいと考えています...

エンジンをdllに組み込み、Unityで管理プラグインとして使用しようとしました。ただし、Unityは古いバージョンのMonoを使用してゲーム全体をコンパイルし、.NET 4.5 dllの使用を拒否します。

本当にこのコードを使用する必要があります。NET3.5にダウングレードすることを検討しましたが、エンジンで既に行われている作業を考えると、許容できるソリューションではありません。

Androidに関しては、Xamarinを使用してネイティブAndroidコードを取得し、Unityでネイティブプラグインとして使用します。Windows用のソリューションが必要です。C#コードの使用方法を検討しています。 C++でアンマネージdllを作成しますが、ここでCOM相互運用、C++/CLI、または他の方法のどちらに適用できるかを理解するのに苦労しています。

誰もが.NET 4.5のコードをUnityに組み込むための方法を、まったく/少しの努力で知っていますか?

19
Warrows

Visual Studioプラグイン: nmanaged exports を使用して、Unity Engineで使用できるアンマネージ/ネイティブdllにC#.NET 4.5をエクスポートできました。これは単純な関数のみを呼び出すことを強制しますが、少しの作業で、エンジンのコアをラップすることができました。

8
Warrows

Unityは4.6以降にアップグレードされ、ベータ版が利用可能になりました

https://forum.unity3d.com/threads/upgraded-mono-net-in-editor-on-5-5-0b4.433541/

12
Ben Adams

短い答えはノーです。

公式ブログ投稿 によれば、Unityには「.NET 2.0/3.5時代の機能」があります。

同じ投稿によると、Unityの将来のバージョンは「.NETの最新バージョン」にアップグレードされ、この主要な取り組みのスケジュールは示されません。

注:この回答は、.NET 4.5ライブラリをUnityで直接使用できるかどうかという質問の元のバージョンに対する回答として書かれました。

6
Ghopper21