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

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

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

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

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

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

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

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

在构造函数里初始化

实现接口的三个函数

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

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

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

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

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

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

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

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

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

在蓝图里设置对应的模型

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

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

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

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

测试效果

实现关卡切换

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

将其添加到场景里

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

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

相关推荐
暮志未晚Webgl9 小时前
115. UE5 GAS RPG 实现角色死亡后从存档点复活
数码相机·ue5
书鸢12369 小时前
UE5 Does Implement Interface 节点
ue5
暮志未晚Webgl2 天前
112. UE5 GAS RPG 制作高亮接口
android·ue5
Zhichao_972 天前
【UE5 C++】判断两点连线是否穿过球体
c++·算法·ue5
一碗情深2 天前
UE5 打包报错 Unknown structure 的解决方法
ue5
异次元的归来3 天前
UE5相机系统初探(二)
ue5·游戏引擎·camera
Zhichao_973 天前
【UE5 C++课程系列笔记】06——定时器的基本使用
笔记·ue5
kissSimple4 天前
给UE5优化一丢丢编辑器性能
ue5·虚幻引擎·unreal engine·unreal engine 5
零一数创5 天前
现代化水库可视化管理平台:提升水库运行效率与安全保障
安全·3d·unity·ue5·游戏引擎