2020/11/09
今回はUnityでスクリプトを作成した際、UnityEngine
系のコード補完が効かなくなってしまうことがあるので、その対処法に関するちょっとしたお話です。
先に結論を言うと、私の場合は「.csproj
ファイルを消して Open C# Project で開きなおす」で直りました。
環境
・Unity
2017.1.1f1
・エディタ
Visual Studio 2017
現象
コード補完が効かなくなると書きましたが、実際はUnityEngine
やUnityEditor
絡みのハイライトやコメント表示も行われなくなります。
下の画像は発生後のエディタの様子ですが、MonoBehaviour
がハイライトされていないのが分かるかと思います。
私の場合は一度発生してしまうと、「ソリューションのリビルドやクリーン」「UnityやPCを再起動」を行っても直りませんでした。
体感では「Visual Studio起動中にUnity側から新規スクリプトファイル作成」で発生することが多かったです。
対処法
冒頭でも述べた通り、プロジェクトフォルダ直下の.csproj
ファイルをすべて削除し、Unityのメニューから「Assets→Open C# Project」を選択します。
VisualStudio起動後、プロジェクトファイルが作り直されます。
すると先ほど作成したスクリプトのコード補完やシンタックスハイライトもいい感じになります。
現象や直し方からプロジェクトファイルが壊れてしまうのではないかと推測しましたが、diffを取っても差分はなく、プロジェクトファイルのItemGroupにもちゃんと追加されているので謎です。
一度VisualStudioを落としてからスクリプトを作成すれば問題ないので、当分は作成方法に注意して対応しようと思います。