概要

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 に戻るとデバッグを開始できるようになっています

ブレークポイントやウォッチができることが確認できます