本記事はサムザップAdvent Calendar 2017の12日目の記事です。
昨日は@yosizo@githubさんのuGUIでプログレスバーの動きに合わせて子要素を動かすでした。
##環境
Unity2017.2.0p3(.Net4.6使用)
VisualStudio 15.5.1
windows10
##問題
Unity2017.2.0p3を落としてきて、いざコードを書こうとすると何故かVisualStudioのインテリセンスが効いていない。
立ち上げなおしても再インストールしても効いていない。
##対処法1
右上からnugetと検索しnugetのパッケージマネージャーを取り込む。
すでにVisualStudioが入っている方はこの方法が最も簡単。
##対処法2
VisualStudioInstallerから落とすときに、初めからnugetのパッケージマネージャーを取り込んでしまう。
まだこれからの方はこの方法が良いと思います。
##別の問題
Nugetパッケージマネージャーを入れることでとりあえずインテリセンス(csファイルの参照)は復活出来たが、Unityを立ち上げてcsファイルを開こうとするたびに.Net4.6.1をインストールするかどうかダイアログで聞かれる。
素直に.Net4.6.1をインストールしてUnityのコンソールからcsファイルに飛ぼうとすると再度ダイアログが出る。
しかもIDEのタブで開いていたcsファイルが全て消し飛んでしまう。
##対処法
.Net4.6.1ではなく**.Net4.6** をインストールすると正しい挙動になります。
インストールはVisulStudioを開いていれば右上から4.6と検索すると**.Net Framework 4.6 TargetingPack**が見つかるので、それをインストール。
VisualStudioInstallerからは個別のコンポーネントからインストール出来ます。
##いったい何がどうなっているのか
.Net4.6.1に変更する際にNugetパッケージマネージャー経由で取得しようとするらしく、Unityを落としてくるときは標準でNugetパッケージマネージャーが入っていない状態なのでUnity側で.Net4.6を使えるように変更すると、おかしくなるようです。
それにしても・・・Unity側で4.6を指定しているのに何故か取得してこようとしているのは.Net4.6.1です。
##GetReferenceNearestTargetFrameworkTaskとは何か
ここにソースがあった
詳しいことは分かりませんがNuGet.Coreの中に入っているものの一部みたいです。
##参考
https://forum.unity.com/threads/visual-studio-problem.507850/