广告商 发表于 2023-9-12 08:28

UE4学习之路:Puerts安装和调试

Puerts是什么:

         是腾讯出品的一个游戏引擎下的TypeScript编程的解决方案,简单说就是类似一个插件,可以让ts代码调用UE4的接口等。
      使用Puerts必需知道什么是typescript脚本语言:是JavaScript的超集,添加了可选的静态类型系统以及其他新特性,最终还是被编译为JavaScript代码。JavaScript代码颠末V8引擎的编译为机器码,然后交给硬件执行。

Puerts怎么安装:

1.获取:
      官网:https://github.com/Tencent/puerts,
2.安装:
      官网简单介绍了怎么安装,也可以参考其他安装方案
嫩仔的春天:Puerts & ReactUMG 环境搭建(二)
      下面是我本身摸索的截图等:
         a. 创建一个空c++项目,取名InstallPuerts:


         b.项目根目录创建一个Plugins文件,把官网获取到的puerts-master\unreal下的Puerts拷贝到Plugin文件里:


         然后再Puerts目录里打开命令行执行:node enable_puerts_module.js


       c.然后从头生成下项目:


      d.回到根目录,执行命令行:npm init:然后一阵确定键,最后创建出package.json文件,


      e.从头打开ue4项目文件:然后点击是编译,如果编译掉败,把Vs编译模式改为Development


   f.打开后,点击按钮:用于生成撑持ts调用ue4的接口等:


   g.让我们写一段代码测试下:打开VsCode,打开项目根目录,在TypeScript文件夹中,创建一个TS_Player.ts脚本文件:


   代码如下:
import * as UE from 'ue'

class TS_Player extends UE.Character {
    ReceiveBeginPlay(): void {
      console.log(”----------------------------hello,world”);
    }
}
export default TS_Player    在Ue4 中,把生成的类简单拖参加景中,然后运行看输出成果:


   运行,看控制台输出:打印出了hello,wordl                                                      


到此大功告成!

Puerts的调试:

       怎么断点是斗劲关心的,下面说下ts怎么断点
       Puerts首先开发模式是有两种的:上面是大佬宣讲的内容,会介绍的斗劲详细。


方式1:自创建虚拟机模式下调试配置
   创建FJsEnv传入调试端口
   //8080是调试端口 GameScript = MakeShared<puerts::FJsEnv>(std::make_unique<puerts::DefaultJSModuleLoader>(TEXT(”JavaScript”)), std::make_shared<puerts::FDefaultLogger>(), 8080);
   阻塞等待调试器链接
GameScript = MakeShared<puerts::FJsEnv>(std::make_unique<puerts::DefaultJSModuleLoader>(TEXT(”JavaScript”)), std::make_shared<puerts::FDefaultLogger>(), 8080);
GameScript->WaitDebugger();
GameScript->Start(”QuickStart”, Arguments);
方式2:自动绑定模式下调试配置
菜单上选择“编纂->项目设置”,打开设置页面后在“插件->Puerts Setting”页面中开启调试以及设置端口


勾选WaitDebugger是阻塞等待调试器链接
调试器通过websocket连接,期间有TCP的握手,websocket握手,成立连接后,调试器和V8还会交换些信息,整个过程概略几百毫秒
在这几百毫秒内执行的脚本将无法断点,如果你想断点这些代码,可以用puerts的阻塞等待调试器连接功能
必然要按照本身项目的开发方式选择调试方式,否则是断不到点的。

在VsCode里的设置可以看下面大佬的文章
额外参考:

xiaoxunhuan 发表于 2023-9-12 08:28

您好博主,我用UE5按照这个步骤进行到e步骤时编译失败,然后把Vs编译模式改为了Development还是不行,生成解决方案时报C1083和MSB3073的错误,您有解决方案吗

jsznet 发表于 2023-9-12 08:29

V8.h和libplatform/libplatform.h头文件打不开

xiaoji1543 发表于 2023-9-12 08:30

ue4.25及以上版本,需要到这里下载V8_8.4.371.19_0323,解压到Plugins/Puerts/ThirdParty

xiaohongchen58 发表于 2023-9-12 08:31

你可以加Purts官方去群啊

南隐 发表于 2023-9-12 08:31

在Ue4 中,把生成的类简单拖到场景中,然后运行看输出结果:
这一步 是怎么生成的?

一塌胡涂 发表于 2023-9-12 08:32

原来是自己生成的,就是那个ts文件

bggxl 发表于 2023-9-12 08:33

请问ts文件是怎么自己生成的啊
页: [1]
查看完整版本: UE4学习之路:Puerts安装和调试