我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

在上一篇文章中,苏南大叔在人物蓝图里面增加了自定义事件,这个事件用于调整人物的前进速度。那么,在其它蓝图里面,比如在自定义道具的蓝图里面,如何调用这个人物速度事件呢?实际上是用于道具的一个加速减速功能的实现。

苏南大叔:UE5教程,如何跨蓝图触发人物蓝图自定义事件? - 跨蓝图触发事件
UE5教程,如何跨蓝图触发人物蓝图自定义事件?(图6-1)

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文记录在虚幻5里面,如何跨越蓝图实现自定义事件的调用。本文测试环境:虚幻编辑器@5.0.2

基本情况

本文基于苏南大叔的前两篇文章:

苏南大叔:UE5教程,如何跨蓝图触发人物蓝图自定义事件? - 人物速度修改道具蓝图
UE5教程,如何跨蓝图触发人物蓝图自定义事件?(图6-2)

那么,本文主要的目标就是做个人物加速或减速道具。

  • 在人物蓝图中,已经定义好了"speed_event"事件,参数是最大行走速度。龙套小白人的最大行走速度,系统默认值是500
  • 在自定义的道具里面,已经做了附加的碰撞体。同时在蓝图中自定义了“开始重叠”事件,在时间结束时,对当前道具做了摧毁。

调用事件

首先,需要明确自定义事件存在于哪个蓝图里面。主角蓝图的名字都是不一样的,本文的龙套是第三人称小白人,所以默认的主角蓝图名字是“BP_ThirdPersonCharacter”。

苏南大叔:UE5教程,如何跨蓝图触发人物蓝图自定义事件? - 转换类型
UE5教程,如何跨蓝图触发人物蓝图自定义事件?(图6-3)

在道具的重叠事件中,有个输出是other actor,这个对象实际上就是主角小白人。那么对它进行强制类型转换,就可以拿到对自定义事件speed event的引用,进而传递参数进行设置。

苏南大叔:UE5教程,如何跨蓝图触发人物蓝图自定义事件? - 变速蓝图调用event
UE5教程,如何跨蓝图触发人物蓝图自定义事件?(图6-4)

实际上在这里,本文的基本需求已经完成,通过道具对主角速度进行设定。

新需求:恢复速度

无论是加速还是减速,经过一段事件之后,速度都应该可以恢复原来的速度。所以,这里增加点延迟恢复速度的逻辑。如果这个延迟定义在道具里面的话,因为在延迟触发的时间的时候,道具已经被摧毁。所以这个延时逻辑并不会被真实调用。所以,延时逻辑被定义到了人物蓝图里面。

新的人物蓝图相关定义如下:

苏南大叔:UE5教程,如何跨蓝图触发人物蓝图自定义事件? - 增加延迟恢复速度功能
UE5教程,如何跨蓝图触发人物蓝图自定义事件?(图6-5)

自定义事件里面,增加了个新的参数,道具的生效时间,也就是多少秒后主角恢复正常的速度。在道具蓝图中可以看到,新的参数默认值是零。如果不做修改的话,真实的效果就是:delay不生效,人物不会恢复速度。

新的道具蓝图相关定义如下:

苏南大叔:UE5教程,如何跨蓝图触发人物蓝图自定义事件? - 设置新的默认值
UE5教程,如何跨蓝图触发人物蓝图自定义事件?(图6-6)

这个道具的功能就是:人物触碰之后,先减速,然后几秒后,恢复正常速度。

相关文章

综述

本文通过对人物蓝图中的自定义事件进行改动,增加了定时恢复原来的速度功能。同时对道具蓝图进行了设置,通过人物类型转换,获得了调用自定义事件的能力。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   unreal    ue5