Unityが.NET Standardに対応する話
そもそも.NET Standardとはなんぞや?
.NET Standard は 現在分裂が進んでいる進もうとしているC#のフレームワークを統一するものである。
といってもわかりずらいのでざっくりと説明します。
以下の図が今までのC#の勢力図のようなものです。
しかしこれをみてわかる通り、ベースとなるライブラリが分裂し、独立されています。
ちなみにUnityは基本はMonoなので、Xamarinに近い立ち位置になるはずです。
これらの環境に.NET Standardに対応させると、以下の図になります。
こうすることで、C#を使う環境であれば.NET Standardが使えるので、
すべての環境でコードの使いまわしが可能になり、
共通するライブラリが簡単に作成できたり、学習コストを下げられます。
.NET Standardの基本は.NET Frameworkであり、今までのフレームワークと変わらず使うことができ、おそらくユーザーやプログラマーはほとんど意識することなく移行が進むものと思われます。
なぜ今普及をすすめようとしている?
.NET Standardがバージョンアップして2.0がリリースされたからです。
これまでは.NET Standardと .NET Freamworkでは機能が見劣りしていましたが、
バージョンアップによってAPI数が倍増しました。
こちらが追加された新機能です。
これらのものがすべてのプラットフォームで使えるとなると、ワクワクするプログラマーは多いのではないでしょうか。
(2017/09/24/現在、検証したところネットワーク機能、IO機能はAndroid、Windows共通で自然使え、驚愕しました。)
そうした機能が追加され、いよいよ一番API数の多い、.NET Framework と同等になったため採用しない理由がなくなってきたわけです。
そしてUnity対応へ
こちらの記事より引用し、翻訳すると
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がサポートする作業の大部分はツールです。
まだまだ先のことですし、正式なリリース文の発表はまだまだですが、現在進行しているC#のバージョンアップが終わり次第取り組むのではないでしょうか。
このような流れがあることから、今後.NET Standardに注目していくとよいのではないでしょうか?
現在、.NET Standard自体は正式リリースされていますので、デスクトップ環境はXamarinでは既に使えるものなので、試してみるとよいと思います。
参考記事
より詳しいことはこちらで
*1:ここまでの図はIntroducing .NET Standard | .NET Blog より引用