找回密码
 立即注册
查看: 361|回复: 7

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

[复制链接]
发表于 2023-9-12 08:28 | 显示全部楼层 |阅读模式
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里的设置可以看下面大佬的文章
额外参考:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2023-9-12 08:28 | 显示全部楼层
您好博主,我用UE5按照这个步骤进行到e步骤时编译失败,然后把Vs编译模式改为了Development还是不行,生成解决方案时报C1083和MSB3073的错误,您有解决方案吗
发表于 2023-9-12 08:29 | 显示全部楼层
V8.h和libplatform/libplatform.h头文件打不开
发表于 2023-9-12 08:30 | 显示全部楼层
ue4.25及以上版本,需要到这里下载V8_8.4.371.19_0323,解压到Plugins/Puerts/ThirdParty
发表于 2023-9-12 08:31 | 显示全部楼层
你可以加Purts官方去群啊
发表于 2023-9-12 08:31 | 显示全部楼层
在Ue4 中,把生成的类简单拖到场景中,然后运行看输出结果:
这一步 是怎么生成的?
发表于 2023-9-12 08:32 | 显示全部楼层
原来是自己生成的,就是那个ts文件
发表于 2023-9-12 08:33 | 显示全部楼层
请问ts文件是怎么自己生成的啊
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-22 09:03 , Processed in 0.102516 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表