GDT -Game Development Technology-

ゲーム開発技術を中心にまとめる情報サイトです。

Unityが.NET Standardに対応する話


 そもそも.NET Standardとはなんぞや?

.NET Standard は 現在分裂が進んでいる進もうとしているC#のフレームワークを統一するものである。

といってもわかりずらいのでざっくりと説明します。

以下の図が今までのC#の勢力図のようなものです。

f:id:irossoftware:20170924002220p:plain

 

しかしこれをみてわかる通り、ベースとなるライブラリが分裂し、独立されています。

ちなみにUnityは基本はMonoなので、Xamarinに近い立ち位置になるはずです。

 

これらの環境に.NET Standardに対応させると、以下の図になります。

f:id:irossoftware:20170924002628p:plain

 

こうすることで、C#を使う環境であれば.NET Standardが使えるので、

すべての環境でコードの使いまわしが可能になり、

共通するライブラリが簡単に作成できたり、学習コストを下げられます。

.NET Standardの基本は.NET Frameworkであり、今までのフレームワークと変わらず使うことができ、おそらくユーザーやプログラマーはほとんど意識することなく移行が進むものと思われます。

 

 なぜ今普及をすすめようとしている?

.NET Standardがバージョンアップして2.0がリリースされたからです。

これまでは.NET Standardと .NET Freamworkでは機能が見劣りしていましたが、

バージョンアップによってAPI数が倍増しました。

f:id:irossoftware:20170924003424p:plain

*1

 

こちらが追加された新機能です。

これらのものがすべてのプラットフォームで使えるとなると、ワクワクするプログラマーは多いのではないでしょうか。

(2017/09/24/現在、検証したところネットワーク機能、IO機能はAndroid、Windows共通で自然使え、驚愕しました。)

そうした機能が追加され、いよいよ一番API数の多い、.NET Framework と同等になったため採用しない理由がなくなってきたわけです。

 そしてUnity対応へ

github.com

こちらの記事より引用し、翻訳すると

Will Unity implement .NET Standard?

Yes. We're working with Unity to make sure this is a smooth experience. In general, since Unity is a fork of Mono it will mostly get .NET Standard support for free. The work to support Unity is mostly in tooling.

 

Unityは.NET Standardを実装しますか?
はい、私たちはこれがスムーズな体験になることを確かめるためにUnityと協力してます。一般的には、UnityはMonoのフォークであるため、.NET Standardのサポートは簡単です。Unityがサポートする作業の大部分はツールです。
 
こちらの文を見てわかるようにUnityは既に着手していると考えられます。

まだまだ先のことですし、正式なリリース文の発表はまだまだですが、現在進行しているC#のバージョンアップが終わり次第取り組むのではないでしょうか。

 

このような流れがあることから、今後.NET Standardに注目していくとよいのではないでしょうか?

現在、.NET Standard自体は正式リリースされていますので、デスクトップ環境はXamarinでは既に使えるものなので、試してみるとよいと思います。

 

 参考記事

より詳しいことはこちらで

blogs.msdn.microsoft.com

docs.microsoft.com

github.com

 

*1:ここまでの図はIntroducing .NET Standard | .NET Blog より引用