首頁 > 軟體

VS Code裡使用Debugger for Unity外掛偵錯的方法(2023最新版)

2023-02-05 14:01:22

問題

換了臺開發機,重新安裝了下開發環境。突然發現Visual Studio Code無法用來偵錯Unity了。

明明流程都是按照Unity官方教學2023.1進行的,可在建立Launch.json檔案時,死活出不來Unity Debugger選項。

說明:Debugger for Unity是一個非正式支援的,官方推薦的,應用最廣的,Visual Studio Code上的Unity偵錯外掛。如果還沒有設定Unity Debugger可以直接看官方檔案 | Debugger for Unity - Visual Studio Marketplace進行設定。本文視作在官方檔案上的補充,解決按照官方檔案操作卻無法新增偵錯程式的問題。

原本預期的步驟是:

結果出現的步驟是:

環境

  • Unity Version: 2021.3.16f1

  • VS Code Version: 1.74.2

  • Version of the Debugger for Unity: 3.0.2

  • Version of C#:v1.25.1(如果你的版本也是v1.21.13+,那你很可能是遇到和我一樣的問題了)

問題定位

點開Visual Studio Code外掛倉庫,開啟Debugger for Unity,看到這個外掛上次更新已經是2020年的事情了,而且介面上明確寫著:此擴充套件已啟用,因為不在對其進行維護。

再點開外掛的github地址,在Issues裡遇到了一堆的受害者。

這個倉庫棄用了嗎?距離上次更新都十個月了,這個外掛最新版的unity還能用嗎?

不能發個官方的宣告嗎說明一下這個外掛的情況嗎?他都壞掉了……

現在都2022年底了,還是沒看到官方通知。官方Unity檔案裡仍然說它被推薦。

團隊的回答也很直接:

簡單來說,我們很忙,沒錢沒人來維護這個專案。我們建議你換個IDE(不要用VS Code了),比如用Visual Studio Community。或者JetBrains Rider也行。

好吧,這個就是官方的態度,不要用了。

即使2023年他們仍把Visual Studio Code和這個外掛放在最新檔案裡,但是正如檔案裡所說,這個Debugger for Unity拓展外掛並沒有被正式支援(Not Ffficially supported by Unity)。

說的還是太委婉了,直接點說:這個拓展外掛我們不維護了,愛用不用。

甭管別的部落格里有多推薦,不推薦了就是官方的態度。

解決方案

要麼就聽官方爸爸的,開發的時候用Visual Studio Code,偵錯的時候用Visual Studio得了……

要麼我就想湊合用能不能行?

能!

如何在新的Visual Studio Code+Unity環境裡使用Debugger for Unity進行偵錯

之所以你建立不了Unity Debugger,是因為C#外掛在v1.21.13後,把識別符號從ms-vscode改成了ms-dotnettools了,Unity Debugger又沒有更新,所以找不到。

兩個方案:

方案1.降級(不推薦)

找到c#外掛,通過手動安裝C# v1.21.12.vsix 或 自動降級的方式把C#版本回退到1.21.13以前

方案2.躲bug生成Launch.json(推薦)

說來說去,只是因為C#外掛升級後,Debugger for Unity識別不到C#檔案導致無法生成偵錯的組態檔罷了。那麼我們不在C#檔案中去生成不就好了?

No environment to choose · Issue #202 · Unity-Technologies/vscode-unity-debug (github.com)

  • 隨便建立一個txt檔案,如:test.txt
  • 點選這個text.txt檔案後,進入偵錯頁籤,如圖:

  • 點選小齒輪就可以看到Unity Debugger啦,點選它後就生成了能用的Launch.json,如圖:

方案3.手動設定Launch.json

先隨便生成一個Launch.json(如果已經有了,跳過這一步)

再替換這個json的內容(或者手動合併json)

launch.json

{
    // 使用 IntelliSense 瞭解相關屬性。 
    // 懸停以檢視現有屬性的描述。
    // 欲瞭解更多資訊,請存取: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Unity Editor",
            "type": "unity",
            "path": "/d:/workspace/unity/learn/CSharpLearn/Library/EditorInstance.json",
            "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"
        },
        {
            "name": "Xbox One Player",
            "type": "unity",
            "request": "launch"
        },
        {
            "name": "PS4 Player",
            "type": "unity",
            "request": "launch"
        },
        {
            "name": "SwitchPlayer",
            "type": "unity",
            "request": "launch"
        }
    ]
}

大功告成,終於又可以用Visual Studio Code偵錯啦!

參考文章

No environment to choose · Issue #202 · Unity-Technologies/vscode-unity-debug (github.com)

Unity - 手動:整合式開發環境 (IDE) 支援 (unity3d.com)

Debugger for Unity - Visual Studio Marketplace

到此這篇關於VS Code裡使用Debugger for Unity外掛進行偵錯(2023最新版)的文章就介紹到這了,更多相關VS Code使用Debugger for Unity外掛偵錯內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com