概要
VSCode でデバッグを開始しようとしたら
「環境の選択」に「Unity Debugger」が表示されず、デバッグできない状況に遭遇した
自前で launch.json を用意してデバッグを開始しようとしても
error while processing request 'launch' (exception: オブジェクト参照がオブジェクト インスタンスに設定されていません。)
上記のエラーが表示されてデバッグを開始できなかった
VSCode の拡張機能の「C#」と「Debugger for Unity」を
ダウングレードしたらデバッグできるようになったので、その手順を記載しておきます
デバッグできない状況に遭遇した時の環境
- Windows 10
- Unity 2020.3.13f1
- Visual Studio Code 1.61.0
- 拡張機能「C#」:v1.23.15
- 拡張機能「Debugger for Unity」:v3.0.2
- Package Manager の「Visual Studio Code Editor」:1.2.3
手順
VSCode にインストール済みの拡張機能
「C#」と「Debugger for Unity」をアンインストールします
(「Debugger for Unity」を先にアンインストールする必要があります)
アンインストールが完了したら VSCode を再起動します
https://github.com/OmniSharp/omnisharp-vscode/releases/tag/v1.21.15
上記のページを開いて「csharp-1.21.15.vsix」を選択して
.vsix ファイルをダウンロードします
https://github.com/Unity-Technologies/vscode-unity-debug/releases/tag/Version-2.7.2
上記のページを開いて「unity-debug-2.7.2.vsix」を選択して
.vsix ファイルをダウンロードします
VSCode の拡張機能のメニューの「VSIX からのインストール...」を選択して
ダウンロードした 2 つの .vsix ファイルを選択してインストールします
デバッグしたい Unity プロジェクトのフォルダに存在する
「.vscode」フォルダを開きます(無ければ作ってから開きます)
「launch.json」という名前のファイルを作成して
{ "version": "0.2.0", "configurations": [ { "name": "Unity Editor", "type": "unity", "request": "launch" }, { "name": "Windows Player", "type": "unity", "request": "launch" }, { "name": "OSX Player", "type": "unity", "request": "launch" }, { "name": "Linux Player", "type": "unity", "request": "launch" }, { "name": "iOS Player", "type": "unity", "request": "launch" }, { "name": "Android Player", "type": "unity", "request": "launch" } ] }
上記のコードを記述して保存します
これで VSCode に戻るとデバッグを開始できるようになっています
ブレークポイントやウォッチができることが確認できます