UE5 + Rider + VsCode 接入腾讯的 Puerts 脚本

学习了一段时间 U++,写点啥就得等编译,体验真的是一言难尽。。。。。。

然后就想着给自己找个脚本好了,调研了一下 AngelScript,puerts 的可行性。

AngelScript 看着真的诱人,但是发现连官方提供的都是 UE 的预编译版本,没有讲解自己该怎么往引擎里一步一步的接入,感觉2眼1摸黑的感觉,官方说这样也无法支持一些2进制插件了。

Puerts 就还好,它是以 UE 插件的形态存在,企鹅家大业大,更新的也很及时,然后就选择先接入它试试看了~

首先从下面这个地址里去下最新版本的安装包,当前最新的是 Unreal_v1.0.8

https://github.com/Tencent/puerts/releases

具体下哪个版本就不赘述了,看官方文档即可。

下面来讲具体步骤,这也是我不喜欢 UE 的点,很多操作都对步骤顺序有要求,换一下顺序可能就会引发新的问题。

1,在电脑上安装好 node.js,并打开 UE 编辑器创建一个 C++ 的桌面项目。

2,编译项目(我的源码引擎,新建 C++ 项目后不会自动编译,需要手动来一下)

3,关闭 rider 和 ue 编辑器

4,拷贝 puerts 插件

一般是下面这个样子的,还要检查 ThirdParty 目录

如果没有 v8 引擎目录的话,要根据文档将 v8 或你想要的后端拷贝进来,要把文件夹名字修改为 v8,这一点很重要,因为程序里是按 v8 这个名字找的,不是的话,编译是无法通过的,官方给的包里都没有写对。

5,右键项目文件,重新生成一下 .sln 文件。

6,双击 .sln 打开项目,进入到设置中,在 构建,执行,部署 -> 工具和构建 中,把 .NET CLI 可执行文件路径 修改为引擎下的 .NET (下拉菜单中直接有),这里应该是 rider 的一个 bug,它默认找最新的,但是我们无法用最新的来进行编译。

7,打开项目的 .Build.cs 文件,添加2个依赖,"Puerts", "JsEnv",虽然我们暂时用不上,但后面也要加,这里顺手搞了。

8,右键项目,重新构建一下它。

9,让我们回到插件的主目录去,就是有 enable_puerts_module.js 的地方,对我们就是要执行它了。

从该目录启动一个 cmd 窗口,执行命令 

node enable_puerts_module.js

它会做很多事,创建一些配置文件和目录出来。

11,打开 ue 项目,点击一下 puerts 的这个按钮(我最开始时以为只是1个logo而已,真的没想到它还能点)。

它会往 Typing 目录生成 ue.d.ts,ue_bp.d.ts 这样的 api 反射文件。

12,打开 ue 项目的同时,用 vscode 打开项目的根目录

在终端里找到配置任务,会在项目目录产生一个 .vscode 目录,和一个 tasks.json 文件,它就是那个所谓的任务。

按如下配置。

{"version": "2.0.0","tasks": [{"type": "typescript","label": "tsc: watch - tsconfig.json","group": "build","tsconfig": "tsconfig.json","option": "watch","problemMatcher": ["$tsc-watch"],}]
}

到这里,配置的工作基本上就完成了,可以来测试一下管不管用了。

13,在 TypeScript 目录下创建一个 TS_Player.ts 文件。

填写如下代码

import * as UE from "ue";class TS_Player extends UE.Character {ReceiveBeginPlay(): void {console.log("----------------------------hello,world 123");}
}export default TS_Player;

还记得之前我们创建的那个任务吗?通过终端菜单,执行一下它。

它会把我们写的 .ts 编译成 .js ,拷贝到   项目\Content\JavaScript\   目录下。

14,我们编写的这个 .ts 会自动创建   项目\Content\Blueprints\TypeScript   目录,并创建名为 TS_Player.uasset 的蓝图文件,如果没有,就在 TS_Player.ts 里加回车,删回车修改一下它。因为它其实是实时编译的,并会在 UE 编辑器的 log 里打印信息,当然产生蓝图也是。

15,我们现在可以把蓝图拖到场景里,然后启动游戏

成功看到日志输出。

 17,如何断点,调试 ts

在 .vscode 目录下创建1个 launch.json ,这是我们的 Attach 设置。

{"version": "0.2.0","configurations": [{"type": "node","name": "Attach Puerts","port": 8080,"request": "attach","skipFiles": ["<node_internals>/**"],}]
}

16,打开项目设置,把 puerts 的调试选项勾上,这里因为我们打断在 TS_Player 的 ReceiveBeginPlay() 方法中断点,所以需要把 Wait Debugger 也给勾上。


18,启动调试,迅速切回 UE5 编辑器去启动游戏。

这样就可以断到点了~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/74070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

凸包构造算法—Graham 扫描法

1. 理论原理推导 核心思想 Graham 扫描法基于以下基本思想&#xff1a; 极角排序&#xff1a; 选取一个参考点&#xff08;通常选择 y 坐标最小的点&#xff0c;若存在多个&#xff0c;则选 x 坐标最小的&#xff09;&#xff0c;将其他点按照与该参考点构成的极角进行升序排…

如何在 Windows 上安装与配置 Tomcat

Apache Tomcat 是一个开源的 Servlet 容器和 Web 服务器&#xff0c;广泛用于 Java Web 应用的开发和部署。它是实现 Java EE&#xff08;现称 Jakarta EE&#xff09;规范中的 Servlet 和 JSP 的官方参考实现。在本文中&#xff0c;我们将详细介绍如何在 Windows 系统上安装并…

测试模版15

本篇技术博文摘要 &#x1f31f; 引言 &#x1f4d8; 在这个变幻莫测、快速发展的技术时代&#xff0c;与时俱进是每个IT工程师的必修课。我是盛透侧视攻城狮&#xff0c;一名什么都会一丢丢的网络安全工程师&#xff0c;也是众多技术社区的活跃成员以及多家大厂官方认可人员&a…

拦截、限流,针对场景详细信息(一)

以下是一个基于Java Spring Boot Redis 的完整限流实现案例&#xff0c;针对同一接口前缀&#xff08;如 /one/ &#xff09;的IP访问频率控制&#xff1a; 场景&#xff1a;用户不用登录即可访问接口&#xff0c;网站会有被攻击的风险 URL&#xff1a;one/two/three one/…

计算机视觉算法实战——烟雾检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​ ​​​​​​​​​ ​​ 1. 烟雾检测领域介绍 烟雾检测是计算机视觉在公共安全领域的重要应用&#xff0c;它通过分析视频或图像序…

MySQL-DCL函数

DCL DCL英文全称是Data Control Language(数据控制语言)&#xff0c;用来管理数据库用户、控制数据库的访问权限。 管理用户 1). 查询用户 use mysql; select * from user; select * from mysql.user; 查询的结果如下: 其中 Host代表当前用户访问的主机, 如果为localhost, 仅…

linux 服务器创建服务器启动后服务自启动

1、在/etc/systemd/system/下touch一个文件&#xff1a; touch /etc/systemd/system/your_application.service 2、在文件中写入&#xff1a; [Unit] Descriptionmodules-system Aftersyslog.target[Service] Typeforking Userroot Grouproot ExecStart/bin/bash /usr/loca…

端到端语音识别案例

《DeepSeek大模型高性能核心技术与多模态融合开发&#xff08;人工智能技术丛书&#xff09;》(王晓华)【摘要 书评 试读】- 京东图书 语音识别这一技术正如其名&#xff0c;是通过精密地解析说话人的语音来识别并准确转写出其所说的内容。它不仅仅是一个简单的转录过程&#…

QT——信号和槽

QT是图形化界面&#xff0c;自然是需要与用户进行交互的&#xff0c;但是该如何实现用户与界面或者程序的交互呢。答案是通过信号和槽。 一&#xff0c;什么是信号和槽&#xff1f; 在Linux操作系统里面&#xff0c;我们知道信号是由硬件或者软件产生&#xff0c;但是在QT里面…

Q:如何保证备份的有效性以及备份频率设置的优化方案?

1、如何保障备份数据的一致性 a) 快照 快照通过捕获数据在某一时刻的完整状态来保障备份一致性。在应用层&#xff0c;快照会暂停业务写入或生成事务一致性检查点&#xff08;如数据库的全局读视图&#xff09;&#xff0c;确保备份数据不包含未提交的事务&#xff1b;在存…

Linux实用操作及命令

一、各类小技巧&#xff08;快捷键&#xff09; 1、强制停止&#xff08;ctrlc&#xff09; Linux某些程序的运行&#xff0c;如果想要强制停止它&#xff0c;可以使用快捷键ctrl c 命令输入错误&#xff0c;也可以通过快捷键ctrl c&#xff0c;退出当前输入&#xff0c;重…

压测工具开发(一)——使用Qt Designer构建简单界面

你好&#xff0c;我是安然无虞。 文章目录 项目功能概述构建菜单栏、工具栏1. 菜单栏注意事项2. 工具栏注意事项3. 日志停靠窗口 项目功能概述 开发一款 Qt版本的压测工具, 可以用来做 基于HTTP API接口的 性能测试. 要求做一个 MDI 多功能子窗口的 图形界面程序, 方便公司内…

Ubuntu 22 Linux上部署DeepSeek R1保姆式操作详解(ollama方式)

操作系统&#xff1a;Ubuntu Linux 22.04 一、安装模型运行环境 打开链接https://ollama.com/download/linux 1.安装ollama &#xff08;1&#xff09;一条指令即可实现的简易版安装方法&#xff08;也可称为在线安装&#xff09; curl -fsSL https://ollama.com/install.s…

MySQL 和 Redis 数据一致性解决方案

MySQL 和 Redis 数据一致性解决方案 MySQL 和 Redis 作为两种不同类型的数据库(关系型 vs 内存型)&#xff0c;在配合使用时需要特别注意数据一致性问题。以下是几种常见的解决方案&#xff1a; 1. 缓存更新策略 1.1 Cache Aside Pattern (旁路缓存模式) 读操作&#xff1a…

Java高频面试之集合-20

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;讲讲 HashSet 的底层实现&#xff1f; HashSet 是 Java 集合框架中用于存储唯一元素的高效数据结构&#xff0c;其底层实…

【MySQL】从零开始:掌握MySQL数据库的核心概念(四)

人们之所以不愿改变&#xff0c;是因为害怕未知。但历史唯一不变的事实&#xff0c;就是一切都会改变。 前言 这是我自己学习mysql数据库的第四篇博客总结。后期我会继续把mysql数据库学习笔记开源至博客上。 上一期笔记是关于mysql数据库的表格约束&#xff0c;没看的同学可以…

Manus:通用智能体的架构革命与产业破局

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…

HTTP协议手写服务器

目录 一、请求的是Web根目录 二、GET方法通过URL传参 三、根据资源类型对应出Content-Type值 四、Http代码 项目完整源代码&#xff1a;Http 周不才/cpp_linux study - 码云 - 开源中国 一、请求的是Web根目录 如果URL中请求的资源是Web根目录&#xff0c;则自动跳转到主…

小蓝和钥匙

错位排序组合数 从28个人里面选14个人分到原来房间的钥匙 C 28 14 另外14个人错位排序 模板 请在此处填写你的解题思路 D14 都是模板记住就好了 无需理解 做题可以看出来是错位排序 或者组合数 然后会写代码就行了 import java.util.Scanner;/*** author zb* date2025/3…

使用飞书API自动化更新共享表格数据

飞书API开发之自动更新共享表格 天马行空需求需求拆解1、网站数据爬取2、飞书API调用2.1 开发流程2.2 创建应用2.3 配置应用2.4 发布应用2.5 修改表格权限2.6 获取tenant_access_token2.7 调用API插入数据 总结 天马行空 之前一直都是更新的爬虫逆向内容&#xff0c;工作中基本…