LoginSignup
8
5

More than 5 years have passed since last update.

Unity2017.2.0p3で.Net4.6を使うとVisualStudioのインテリセンスが効かない対処法+α

Last updated at Posted at 2017-12-12

本記事はサムザップ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の中に入っているものの一部みたいです。

参考

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5