1eon

使用VsCode调试UE5的PuerTs

1、下载测试的Demo项目

配置PuerTs的步骤这里不赘述。

2、准备工作

2.1 打开项目

正常来说,直接打开项目可以看到如下画面

在这里插入图片描述
如果直接点击运行,可以发现下方的 Output Log 窗口已经开始 Print 了很多案例。
是因为该项目默认执行的是QuickStart.ts。

2.2 打开TsGameInstance.cpp

在这里插入图片描述

3、添加VsCode断点

3.1 在VsCode找到QuickStart.ts,随便断一个点

(这里我们以 L17 为例)
在这里插入图片描述

4、 修改虚拟机端口 (8889)

(如果不知虚拟机的用途,可以查看ZombieYang大佬的推文
回到TsGameInstance.cpp中
将 注释的代码 取消注释
在这里插入图片描述
图片过长,目前代码如下:

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配置

在这里插入图片描述

5.2 选择 Node.js : Attach

在这里插入图片描述

5.3 更改端口为 (8889)

在这里插入图片描述

6、开始Debug

6.1 启动VsCode待命

①首先选择5.2添加的Debug配置
在这里插入图片描述
②点击左侧绿色 三角形 在这里插入图片描述
可以看到如下示意框
在这里插入图片描述

6.2 启动2.1的项目

不出意外已经成功被中断。

7、 尽情Debug~

在这里插入图片描述




参考:

[UE] 1.64.2的VSCode无法断点调试TS

Puerts Inspector指南(一)在UE4和Unity里调试Javascript

分类:

UE

技术点:

相关文章: