【unity】※改定 Visual Studio Code でMicrosoftが提供しているunity拡張機能を用いてのデバッグを行う(ブレイクポイント停止)

概要

Unity - Visual Studio Marketplace
Extension for Visual Studio Code - Integrates Visual Studio Code with Unity

Microsoftがunityのプラグインを提供したのでこちらを試してみる。

条件

拡張機能の条件に従い今回は

UnityのPreferences設定の「External Tools」でVisualStudio Codeを選択して

念のためGenerate.csproj files forの項目をすべてチェックして「Regenerate project files.」を行う。

※なぜかPlayer projectsはチェックできなかった

VS Code

unityでc#のファイルをダブルクリックするとUnity プロジェクトが Visual Studio Codeで開く

拡張機能をインストールしているとコマンドパレットに

  • Unity API Reference
    • Unity デバッガーを接続できる Unity エディター、プレーヤーをリストする
  • Attach Unity Debugger
    • 現在選択されているコード構成の Unity ドキュメントを開く。

が存在している

unityにアタッチ

方法が2つあります。

  1. 先ほどのAttach Unity Debuggerを使用※おすすめ
  2. 直接.vscode/launch.jsonファイルを編集(1をするとここに書き込まれる)

1 Attach Unity Debugger

Attach Unity Debuggerを行いその後に出てくる自身のUnityを選択

※うまく接続されると勝手に「実行とデバッグ」の項目が表示される

アタッチされたらブレイクポイントを設定してunityを実行するとうまくいく。

うまくいかない場合はとりあえずUnity、VSCodeを再起動してみること

※初回は実行とデバッグが「構成がありません」となるがそのままunit側の実行すると「Attach to Unity」に変わった。

unityを実行後

2. .vscode/launch.jsonファイルを編集

Attach Unity Debuggerで作成された.vscode/launch.jsonの中身を記載しておく

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Attach to Unity",
            "type": "vstuc",
            "request": "attach"
        }
     ]
}

初回以降のデバッグしてみる

問題なくできたら次から▶「Attach to Unity」を実行して、unityも実行するとうまくいった。

うまくunityと接続できない場合

Attach Unity Debuggerを行ってもうまく接続ができないことがある

Unity拡張機能のGitHubのこちらを参考にしていろいろ試してみた。

再現方法は「Attach Unity Debugger」のながれで実行するか、直接「実行とデバッグ」で「Attach to Unity」を行ってデバッグ中に再度「Attach Unity Debugger」でunityを選択してしまうとなった。

一瞬だがコールスタックにunityが2つ見える

おそらく裏で2重に接続が走っているような感じみたい。

この場合に試したこと

  • Unity、VSCodeの再起動(VSCodeはUnityからc#ファイルをダブルクリックで開く)
    • VSCodeのみの再起動だと改善されなかった。
  • PCの再起動(どうしようもなかったら)

終わりに

不安定(preview版なので当たり前だが)いろいろNG行動がありそう、これから開発されていくと安定されると思うがMicrosoftが提供しているので期待したい。

コメント