結論
Visual Studio Editorというパッケージのバージョンを2.0.22以下に戻してください。
戻し方
packages/manifest.json
を開き、以下のパッケージのバージョンを 2.0.22
に編集してください。
"com.unity.ide.visualstudio": "2.0.22"
何が起きたか
ある日開発をしているとVSCode側でうまく開発作業ができなくなってしまいました。
具体的には、
- すでにエディタが開かれているのに新規ウィンドウで開こうとしてくる
- C#のコード補完が効かなくなる
- Unityデバッガーにアタッチできなくなる
といった現象が発生しました。
原因と調査
この原因を探っていくと辿りついたのがタイトルにもある{プロジェクト名.code-workspace}
というファイルが悪さをしていることがわかりました。
これはVSCodeのワークスペースを管理するファイルで、ざっくりいうと、このフォルダを起点に作業するよというのをVSCodeに教えるためのファイルです。
ここにVSCodeの設定を追加していけば、そのワークスペース内でのみ◯◯機能を有効にするみたいなことも可能になります。
ただこれが現状のUnity開発とあまり噛み合っていません。
1つ目の問題はワークスペースとして新規ウィンドウで開くため、以後ワークスペースとしてVSCodeを開いていれば問題ないのですが、
2つ目の補完が効かなくなるのは、そもそもこのフォルダをC#のプロジェクトだと認識していないことが原因となっています。なぜかというとソリューションファイル(.sln)がどこにあるかわからず、C#プロジェクトではなく単にフォルダを開いているだけという状態になってしまっているためです。
そして3つ目ですが、当然C#のプロジェクトとして認識していないためUnityのデバッガにもアタッチできないということが起きてしまいます。
これを回避するにはデフォルトで生成された.code-workspaceにUnity向けの設定を書くか、このファイルを消してしまえばOKです。
ただ私の環境では消せども消せどもworkspaceファイルが生え続けたため、Unity側で何か悪いことしているんじゃないかと調べた結果、結論のところに書いたパッケージの新バージョンでそのような実装をしたと記載がありました。
Code Editor Package for Visual Studio
Try opening a Visual Studio Code workspace if there's one (.code-workspace file in the Unity project).
とあるのでどうやらこいつが原因のようです。
こいつが原因とわかったのであれば元のバージョンに戻すだけで良さそうです。戻し方は一番上の結論ページに記載しましたので、もし同じような症状が出た人は試してみてください。