UE5教程,如何跨蓝图触发人物蓝图自定义事件?
发布于 作者:苏南大叔 来源:程序如此灵动~在上一篇文章中,苏南大叔在人物蓝图里面增加了自定义事件,这个事件用于调整人物的前进速度。那么,在其它蓝图里面,比如在自定义道具的蓝图里面,如何调用这个人物速度事件呢?实际上是用于道具的一个加速减速功能的实现。
大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文记录在虚幻5里面,如何跨越蓝图实现自定义事件的调用。本文测试环境:虚幻编辑器@5.0.2
。
基本情况
本文基于苏南大叔的前两篇文章:
- 《如何做一个可复用可编程的道具组件》 https://newsn.net/say/ue5-actor.html
- 《如何添加人物自定义事件?以实现加速减速接口》 https://newsn.net/say/ue5-event-speed.html
那么,本文主要的目标就是做个人物加速或减速道具。
- 在人物蓝图中,已经定义好了"speed_event"事件,参数是最大行走速度。龙套小白人的最大行走速度,系统默认值是
500
。 - 在自定义的道具里面,已经做了附加的碰撞体。同时在蓝图中自定义了“开始重叠”事件,在时间结束时,对当前道具做了摧毁。
调用事件
首先,需要明确自定义事件存在于哪个蓝图里面。主角蓝图的名字都是不一样的,本文的龙套是第三人称小白人,所以默认的主角蓝图名字是“BP_ThirdPersonCharacter”。
在道具的重叠事件中,有个输出是other actor
,这个对象实际上就是主角小白人。那么对它进行强制类型转换,就可以拿到对自定义事件speed event
的引用,进而传递参数进行设置。
实际上在这里,本文的基本需求已经完成,通过道具对主角速度进行设定。
新需求:恢复速度
无论是加速还是减速,经过一段事件之后,速度都应该可以恢复原来的速度。所以,这里增加点延迟恢复速度的逻辑。如果这个延迟定义在道具里面的话,因为在延迟触发的时间的时候,道具已经被摧毁。所以这个延时逻辑并不会被真实调用。所以,延时逻辑被定义到了人物蓝图里面。
新的人物蓝图相关定义如下:
自定义事件里面,增加了个新的参数,道具的生效时间,也就是多少秒后主角恢复正常的速度。在道具蓝图中可以看到,新的参数默认值是零。如果不做修改的话,真实的效果就是:delay
不生效,人物不会恢复速度。
新的道具蓝图相关定义如下:
这个道具的功能就是:人物触碰之后,先减速,然后几秒后,恢复正常速度。
相关文章
综述
本文通过对人物蓝图中的自定义事件进行改动,增加了定时恢复原来的速度功能。同时对道具蓝图进行了设置,通过人物类型转换,获得了调用自定义事件的能力。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。