以前紹介したように、私はMac版Unityで開発する時は、Visual Studio Codeを使っています。
MacのUnityでVisual Studio Codeと連携させる方法(1) - Cross Technology
MacのVisual Studio CodeとUnityの連携方法(2):コード補完(Extention更新) - Cross Technology
(2)の記事で、インテリセンス(コード補完)が効かなくなったときの対処方法を書きましたが、先ほどそれでも対応できなかった(結果的には勘違いも含みます)があったので、参考までに紹介します。
なお、以下の環境で動作を確認しています。
- Mac OS X 10.11.6
- Visual Studio Code 1.7.1
- VSCode.cs v2.7 ( (2)のときはv2.6)
1. 何が起こったか?
Unityのプロジェクトを別のフォルダにコピーしてから、Visual Studio CodeでUnityC#のインテリセンスが効かなくなった、というものです。
この記事で紹介した方法により、Legacy C# SupportのExtensionが入っていることは確認済みです。
2. 原因
プロジェクトを別の名前のフォルダにコピーしたことで、slnファイルが二つ生成されてしまい、Visual Studio Codeが新しいslnファイルを読み込んでいたためでした。
例えば、UnityProjectAという名前のプロジェクトを作ったとします。そうすると、UnityProjectAの階層に、slnファイルやAssetsフォルダなどが生成されます。
UnityProjectA / UnityProjectA.sln
今回、途中からgit管理したくなったので、UnityProjectAフォルダの中身をコピーしてUnity_gitという別フォルダの中に入れました。このように配置すると、Unity_gitフォルダには、UnityProjectA.sln以外にUnity_git.slnという別のslnファイルが生成されます。
Unityで開発を続ける分には問題ないのですが、Visual Studio Codeでは、Unity_git.slnを読んでいました。
3. 対処方法
Visual Studio Codeで、元のプロジェクト名のslnファイルを読み込むように変更します。以下、手順を解説します。
Visual Studio Codeの右下を見ると、読み込んだプロジェクトのslnが表示されています。
ここをクリックすると、画面上部にslnの選択画面が出ます。
ここで、フォルダコピー前のslnを選択すると、インテリセンスが効くようになります。
4. 終わりに
こんな使い方をする方はあまりいないかもしれませんが、せっかくなので整理してみました。今回の私のように、途中からgit管理したくなったときは、ご参考ください。