Unity
VisulalStudio

unity2017以降で新規作成したコードのMonobehaviourが認識しなくて困っている人達へ

追記

コメントでいただきましたが、C#4.6以降にしていることで起こる不具合のようです…
こちらの記事がよくまとまっているのでこちらで解決していただければと思います
https://qiita.com/tak/items/c2454c8db3c65f715642

この記事の動作環境

Windows10 Pro
unity2017.2.0f3(64bit)
Visual Studio2017

想定している状態

  • unityEditor から CreateしたC#コードのMonobehaviourが機能せず、せっかく2017で強化されたコード補完などが機能しない
  • 上記の状態に陥ったとき、Visual Studioを再起動することで機能が戻る

はじめに

こちらの記事はご覧になったでしょうか。
Visual Studio2017からは公式でunityとの連携がされるようになったので、ひと手間設定が必要のようです。

それでも問題が解決しない場合

そう、私も上記の設定だけでは解決しませんでした。
新規コードを作るとだいたいこんな感じで、Monobehaviourが白く表示されており、認識されておりません。

29d70608f301b1c95cbe8ec2cffe4fdd.png

いろいろ見てみたところ、どうやら原因はVisualStudio側が、そのプロジェクトのファイルと認識していないことが原因のようです。

赤ハイライト.png

ディレクトリ赤ハイライト.png

ご覧の画像のように、ディレクトリには配置されていますが、どのプロジェクトに属しているファイルなのかが不明になっています。

対処法

さて、対処法ですが、一応はあります。
それは、Visual Studioをいったん落とすこと…ではなく、ソリューションを更新してやればいいのです。

kousin.png

このアイコンを押すとソリューションの更新が行われます。これで無事認識されますね。

それでも解決しない場合の対処法

さて、それでも解決できない場合もあります。あります…。
そういう時は、直接所属先のプロジェクトを指定してやればいいのです。

ファイル > "スクリプト名"の移動先 > "自分のプロジェクト名"
を選択します。

purojekut.png

認識されました!

dfb909b846c2de9ff36b51817c7c2a05.png

おわりに

残念ながら対症療法的なものしかわからず、根本的な解決には至っておりません。
時間を置いたらいつの間にか解決していたり、まだわかっていない部分も多いです。
ソリューションの更新などはVisual Studioの設定である程度改善はできるのですが、それでも完全には解決できませんでした。

e0666394d094701c780d4721501ad3fa.png

とはいえ、同じ悩みの人は結構いそうだなということで記事にしてみました。
他に何か有力な情報がありましたら教えていただければと思います。
ご拝読ありがとうございました。