VS?Code里使用Debugger?for?Unity插件調(diào)試的方法(2023最新版)
問(wèn)題
換了臺(tái)開(kāi)發(fā)機(jī),重新安裝了下開(kāi)發(fā)環(huán)境。突然發(fā)現(xiàn)Visual Studio Code無(wú)法用來(lái)調(diào)試Unity了。
明明流程都是按照Unity官方教程2023.1進(jìn)行的,可在創(chuàng)建Launch.json文件時(shí),死活出不來(lái)Unity Debugger選項(xiàng)。
說(shuō)明:Debugger for Unity是一個(gè)非正式支持的,官方推薦的,應(yīng)用最廣的,Visual Studio Code上的Unity調(diào)試插件。如果還沒(méi)有配置Unity Debugger可以直接看官方文檔 | Debugger for Unity - Visual Studio Marketplace進(jìn)行配置。本文視作在官方文檔上的補(bǔ)充,解決按照官方文檔操作卻無(wú)法添加調(diào)試器的問(wèn)題。
原本預(yù)期的步驟是:

結(jié)果出現(xiàn)的步驟是:

環(huán)境
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+,那你很可能是遇到和我一樣的問(wèn)題了)
問(wèn)題定位
點(diǎn)開(kāi)Visual Studio Code插件倉(cāng)庫(kù),打開(kāi)Debugger for Unity,看到這個(gè)插件上次更新已經(jīng)是2020年的事情了,而且界面上明確寫(xiě)著:此擴(kuò)展已啟用,因?yàn)椴辉趯?duì)其進(jìn)行維護(hù)。

再點(diǎn)開(kāi)插件的github地址,在Issues里遇到了一堆的受害者。
這個(gè)倉(cāng)庫(kù)棄用了嗎?距離上次更新都十個(gè)月了,這個(gè)插件最新版的unity還能用嗎?

不能發(fā)個(gè)官方的聲明嗎說(shuō)明一下這個(gè)插件的情況嗎?他都?jí)牡袅?hellip;…

現(xiàn)在都2022年底了,還是沒(méi)看到官方通知。官方Unity文檔里仍然說(shuō)它被推薦。

團(tuán)隊(duì)的回答也很直接:


簡(jiǎn)單來(lái)說(shuō),我們很忙,沒(méi)錢(qián)沒(méi)人來(lái)維護(hù)這個(gè)項(xiàng)目。我們建議你換個(gè)IDE(不要用VS Code了),比如用Visual Studio Community?;蛘逬etBrains Rider也行。
好吧,這個(gè)就是官方的態(tài)度,不要用了。
即使2023年他們?nèi)园裋isual Studio Code和這個(gè)插件放在最新文檔里,但是正如文檔里所說(shuō),這個(gè)Debugger for Unity拓展插件并沒(méi)有被正式支持(Not Ffficially supported by Unity)。
說(shuō)的還是太委婉了,直接點(diǎn)說(shuō):這個(gè)拓展插件我們不維護(hù)了,愛(ài)用不用。
甭管別的博客里有多推薦,不推薦了就是官方的態(tài)度。

解決方案
要么就聽(tīng)官方爸爸的,開(kāi)發(fā)的時(shí)候用Visual Studio Code,調(diào)試的時(shí)候用Visual Studio得了……
要么我就想湊合用能不能行?
能!
如何在新的Visual Studio Code+Unity環(huán)境里使用Debugger for Unity進(jìn)行調(diào)試
之所以你創(chuàng)建不了Unity Debugger,是因?yàn)镃#插件在v1.21.13后,把標(biāo)識(shí)符從ms-vscode改成了ms-dotnettools了,Unity Debugger又沒(méi)有更新,所以找不到。
兩個(gè)方案:
方案1.降級(jí)(不推薦)
找到c#插件,通過(guò)手動(dòng)安裝C# v1.21.12.vsix 或 自動(dòng)降級(jí)的方式把C#版本回退到1.21.13以前
方案2.躲bug生成Launch.json(推薦)
說(shuō)來(lái)說(shuō)去,只是因?yàn)镃#插件升級(jí)后,Debugger for Unity識(shí)別不到C#文件導(dǎo)致無(wú)法生成調(diào)試的配置文件罷了。那么我們不在C#文件中去生成不就好了?
No environment to choose · Issue #202 · Unity-Technologies/vscode-unity-debug (github.com)
- 隨便創(chuàng)建一個(gè)txt文件,如:test.txt
- 點(diǎn)擊這個(gè)text.txt文件后,進(jìn)入調(diào)試頁(yè)簽,如圖:

- 點(diǎn)擊小齒輪就可以看到Unity Debugger啦,點(diǎn)擊它后就生成了能用的Launch.json,如圖:

方案3.手動(dòng)配置Launch.json
先隨便生成一個(gè)Launch.json(如果已經(jīng)有了,跳過(guò)這一步)

再替換這個(gè)json的內(nèi)容(或者手動(dòng)合并json)
launch.json
{
// 使用 IntelliSense 了解相關(guān)屬性。
// 懸停以查看現(xiàn)有屬性的描述。
// 欲了解更多信息,請(qǐng)?jiān)L問(wèn): 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調(diào)試?yán)玻?/p>

參考文章
No environment to choose · Issue #202 · Unity-Technologies/vscode-unity-debug (github.com)
Unity - 手動(dòng):集成開(kāi)發(fā)環(huán)境 (IDE) 支持 (unity3d.com)
Debugger for Unity - Visual Studio Marketplace
到此這篇關(guān)于VS Code里使用Debugger for Unity插件進(jìn)行調(diào)試(2023最新版)的文章就介紹到這了,更多相關(guān)VS Code使用Debugger for Unity插件調(diào)試內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c#利用Session對(duì)象實(shí)現(xiàn)購(gòu)物車(chē)的方法示例
這篇文章主要介紹了c#利用Session對(duì)象實(shí)現(xiàn)購(gòu)物車(chē)的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
C#中IDispose接口的實(shí)現(xiàn)及為何這么實(shí)現(xiàn)詳解
這篇文章主要給大家介紹了關(guān)于C#中IDispose接口的實(shí)現(xiàn)及為何這么實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05
解析c#在未出現(xiàn)異常情況下查看當(dāng)前調(diào)用堆棧的解決方法
本篇文章是對(duì)c#在未出現(xiàn)異常情況下查看當(dāng)前調(diào)用堆棧的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C# winform登陸框驗(yàn)證碼的實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了C# winform登陸框驗(yàn)證碼的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
C#中數(shù)組初始化與數(shù)組元素復(fù)制的方法
這篇文章主要介紹了C#中數(shù)組初始化與數(shù)組元素復(fù)制的方法,涉及C#中數(shù)組的創(chuàng)建、初始化及使用Array.Copy方法復(fù)制數(shù)組元素的技巧,需要的朋友可以參考下2015-04-04

