使用VsCode調試UE5的PuerTs

使用VsCode調試UE5的PuerTs1、下載測試的Demo項目配置PuerTs的步驟這里不贅述 。
2、準備工作2.1 打開項目正常來說,直接打開項目可以看到如下畫面

使用VsCode調試UE5的PuerTs

文章插圖
如果直接點擊運行,可以發現下方的 Output Log 窗口已經開始 Print 了很多案例 。是因為該項目默認執行的是QuickStart.ts 。
2.2 打開TsGameInstance.cpp
使用VsCode調試UE5的PuerTs

文章插圖
3、添加VsCode斷點3.1 在VsCode找到QuickStart.ts,隨便斷一個點(這里我們以 L17 為例)
使用VsCode調試UE5的PuerTs

文章插圖
4、 修改虛擬機端口 (8889)(如果不知虛擬機的用途,可以查看ZombieYang大佬的推文)回到TsGameInstance.cpp中將 注釋的代碼 取消注釋
使用VsCode調試UE5的PuerTs

文章插圖
圖片過長,目前代碼如下:
void UTsGameInstance::OnStart(){//GameScript = MakeShared<puerts::FJsEnv>();GameScript = MakeShared<puerts::FJsEnv>(std::make_unique<puerts::DefaultJSModuleLoader>(TEXT("JavaScript")), std::make_shared<puerts::FDefaultLogger>(), 8889);GameScript->WaitDebugger();TArray<TPair<FString, UObject*>> Arguments;Arguments.Add(TPair<FString, UObject*>(TEXT("GameInstance"), this));GameScript->Start("QuickStart", Arguments);}注意看修改后的代碼 。我這里已經將端口更改為 " 8889 "同時打開了WaitDebugger(),目的是Client等待V8的虛擬機(Client和V8虛擬機的關系同樣可以查看ZombieYang大佬的推文)
5、添加VsCode配置5.1 打開VsCode的Debug配置
使用VsCode調試UE5的PuerTs

文章插圖
5.2 選擇 Node.js : Attach
使用VsCode調試UE5的PuerTs

文章插圖
5.3 更改端口為 (8889)
使用VsCode調試UE5的PuerTs

文章插圖
6、開始Debug6.1 啟動VsCode待命①首先選擇5.2添加的Debug配置
使用VsCode調試UE5的PuerTs

文章插圖
②點擊左側綠色 三角形
使用VsCode調試UE5的PuerTs

文章插圖
可以看到如下示意框
使用VsCode調試UE5的PuerTs

文章插圖
6.2 啟動2.1的項目不出意外已經成功被中斷 。
7、 盡情Debug~
使用VsCode調試UE5的PuerTs

文章插圖
【使用VsCode調試UE5的PuerTs】參考:
[UE] 1.64.2的VSCode無法斷點調試TS
Puerts Inspector指南(一)在UE4和Unity里調試Javascript

    推薦閱讀