113. UE5 GAS RPG 实现传送点切换地图

接着我们优化体验相关,首先实现检查点可以在选中点击后,可以自动移动到目标检查点。然后增加一个可以提示玩家已经探索过相关区域的光柱,最后增加一个传送点,可以通过传送点传送到其它关卡。

实现点击自动移动到检查点

先实现点击移动到检查点功能。

我们先将实现接口冲蓝图移动到c++里,之前可以当做演示,如何实现在一个物体上添加接口。

我们在高亮接口里添加一个新好用,用于获取角色需要移动到的检查点的位置。

在检测点类里增加一个场景组件,用于定义位置

增加一个可以修改自定义深度的配置

在构造函数里初始化

实现接口的三个函数

敌人也继承了高亮接口,但是不需要修改目标位置

然后在PlayerController里,鼠标抬起事件里,通过接口修改目标位置,然后通过插件计算移动路径。

然后打开检查点,将蓝图实现的接口内容去掉

修改场景组件到一个合适的位置。测试即可。

实现提示玩家探索过区域的灯柱

如果地形复杂,我们还需要设置一个灯柱,玩家激活以后,就会一直常亮,提醒玩家此地已经探索过。

我们在检测点类里添加一个属性,因为灯柱无法保存存档,所以,它的碰撞体是无法绑定存储回调的

然后事件开始,绑定回调时,通过变量判断是否需要绑定

接着通过类创建一个新的蓝图

在蓝图里设置对应的模型

将绑定变量设置为false,这样就无法绑定回调,我们还能定义显示颜色。

然后修改Sphere的碰撞体大小,在什么范围内和玩家角色碰撞会亮起。

在蓝图里绑定Sphere碰撞体的重叠事件

Handle Glow Effects会创建一个新的材质返回,我们在函数接收,并通过时间轴更新数值,让其慢慢亮起来。

测试效果

实现关卡切换

接下来,我们增加一个新的类,继承检查点类,用于实现两张地图的切换功能。

在类里,我们要去掉一部分检查点的功能,实现一部分新的功能。

我们首先申明了构造函数,explicit 关键字的主要作用是防止隐式转换和意外初始化。尤其是还需要调用父类的构造函数时。

在构造函数里,我们只做了一件事,就是将球的碰撞体附加到了移动目标组件上。

然后覆写父类的LoadActor函数,传送点不需要激活高亮效果,我们覆写它,不让它执行高亮函数

然后,我们增加了两个属性,一个是需要传送到的目标地图,另一个是目标地图的初始点标签。

最后,我们覆写球的重合事件,它和检查点的功能不同,我们将设置高亮的逻辑去掉,将角色信息和场景信息保存。最后还需要切换关卡

上图,我们保存场景状态时,还传入了关卡的资源路径名称,这个后面会讲到。

在存档类里,我们增加了一个新的存储名称,用于存储地图资源名称,其主要目的是为了获取设置显示的对应关卡的名称。

地图和名称对应的数据我们是设置在GameMode类里的,保存场景状态函数也是在GameMode类里,我们在类里增加一个新的函数,用于通过地图资源名称获取地图显示名称。

实现这里,通过遍历所有的设置的地图,找到对应的关卡,将显示名称返回。

并在保存状态函数增加一个新的参数传入

保存存档时,通过关卡资源名称获取到显示名称,保存到存档里,方便下次加载使用

接着就是保存关卡出生点的位置标签,我们是在角色保存时将新的标签保存。

我们要增加逻辑,在保存时,也需要将游戏实例上缓存的标签修改掉,这样,在未保存之前,角色也会出现在当前场景的目标位置的出生点。

修改完成,我们编译打开引擎,增加一个新的关卡,用于切换。

并将新关卡添加到GameMode蓝图里。

通过传送点类创建一个新的蓝图,用于切换。

添加模型,并修改传送位置和碰撞体大小

将其添加到场景里

并设置目标关卡和目标关卡的出生点

当然,自身的标签还是有用的,我们可以通过设置玩家出生点标签,在切换此关卡时,让玩家生成在传送点的PlayerStart位置。

相关推荐
星火撩猿17 小时前
常见游戏引擎介绍与对比
unity·ue5·游戏引擎·godot
清流君19 小时前
【MySQL】数据库 Navicat 可视化工具与 MySQL 命令行基本操作
数据库·人工智能·笔记·mysql·ue5·数字孪生
Involuter1 天前
UE5 Assimp 自用
ue5
电子云与长程纠缠1 天前
Unreal Niagara制作SubUV贴图翻页动画
学习·ue5·编辑器·贴图·niagara
子燕若水2 天前
“Daz to Unreal”将 G8 角色(包括表情)从 daz3d 导入到 UE5。在 UE5 中,我发现使用某个表情并与闭眼混合后,上眼睑出现了问题
3d·ue5
半天法师2 天前
UE5.2+VarjoXR3,Lumen、GI、Nanite无效的两种解决方案
ue5·xr·vr
ue星空2 天前
UE5摄像机画面没有填充满屏幕有黑边
ue5
李詹3 天前
游戏开发核心技术解析——从引擎架构到攻防体系的完整技能树
架构·ue5·游戏引擎·游戏程序·3dsmax·虚幻
子燕若水3 天前
UE5的 Modify Curve 蓝图节点
ue5
人宅5 天前
UE5有些场景的导航生成失败解决方法
ue5