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

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

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

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

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

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

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

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

在构造函数里初始化

实现接口的三个函数

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

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

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

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

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

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

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

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

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

在蓝图里设置对应的模型

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

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

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

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

测试效果

实现关卡切换

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

将其添加到场景里

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

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

相关推荐
lalapanda10 小时前
UE5学习记录 part13
学习·ue5
lalapanda13 小时前
UE5学习记录part12
学习·ue5
吴梓穆2 天前
UE5学习笔记 FPS游戏制作33 游戏保存
笔记·学习·ue5
rrtt_23232 天前
UE5 + Rider + VsCode 接入腾讯的 Puerts 脚本
ue5·puerts·普洱
liangjiyucsdn2 天前
UE5新材质系统效果Demo展示
ue5
ue星空2 天前
UE5中开启ACES工作流程
ue5
妙为2 天前
在 Unreal Engine 5 中制作类似《鬼泣5》这样的游戏时,角色在空中无法落地的问题可能由多种原因引起。
ue5·鬼泣5·角色落地·把敌人击飞到空中
Zhichao_973 天前
【UE5】摄像机晃动
ue5
Deveuper4 天前
UE5 UE4 右键/最大化-菜单-不显示/闪/黑色/黑屏--修复方法
ue5·ue4
ue星空8 天前
UE5摄像机震屏/晃动效果
ue5