Unity 3Dの.NETバージョンが謎すぎるので調査中

HoloLensの開発にUnityを使っていますが、UWPであるにもかかわらず、nugetが使えなかったり、UWP固有の呼び出しができなかったりして謎すぎるので調べています。

現時点では全てが明確に判明したわけではないです。気づいた点があればコメントいただけると嬉しいです。

使用している環境

ビルドと実行環境のタイミング

UnityのScriptのビルドと実行環境は、次のものがあります。

  • UnityからScriptの編集
  • Unityで実行
  • Visual StudioからUnityにプロセスアタッチしてデバッグ
  • UnityからBuild
  • Build出力のビルドと実行

さらに、Unityからリモート実行とか、HoloLensエミュレータで実行とかあるようですが未確認。

それぞれについて、フレームワークに何が使われているか調べてみました。

UnityからScriptの編集

UnityからScriptをOpenした状態。 プロジェクトフォルダ直下にある.sln, .csprojを開いたVisual Studio

f:id:matsujirushix:20170608175513p:plain

Unityで実行

Unityで再生マークを押して実行している状態。 f:id:matsujirushix:20170608175725p:plain

Visual StudioからUnityにプロセスアタッチしてデバッグ

UnityからScriptの編集で立ち上がったVisual Studioを実行すると、Unityにプロセスアタッチします。 なので、Visual Studioで実行してから、Unityで実行すると、Unityで実行している状態をVisual Studioデバッグすることができます。

UnityからBuild

UnityのBuild SettingsでBuildボタンをクリックしてビルドすること。

f:id:matsujirushix:20170608180055p:plain

Build出力のビルドと実行

UnityからBuild時に指定したフォルダに作成された、.slnを開いたVisual Studio。 (Unity C# Projectsをチェックしている場合は編集できたり、)ビルドしてHoloLensにデブロイ、リモート実行すること。

調べ方

(そのうち書く!m(__)m)

結果

状況 フレームワーク
UnityからScriptの編集 .NET3.5 / .NET4.6
Unityで実行 mono(.NET2系)っぽい
Visual StudioからUnityにプロセスアタッチしてデバッグ mono(.NET2系)
UnityからBuild UWP(UAP)っぽい
Build出力のビルドと実行 UWP(UAP)