虚幻引擎中蓝图间的几种通信方式

学习了虚幻一段时间,是看的谌嘉诚的视频入的门,里面做过挺多的功能,但是在之后总是会忘记,所以这次又重新温习了一遍虚幻官方的蓝图,对蓝图通信这方面又做了一个巩固。蓝图通信在虚幻中很重要,主要有以下四种方式:

一、直接通信

直接通信的方式是最常用的也是最好理解的。比如两个蓝图类中,一个蓝图想要调用另外一个蓝图中的参数或者函数,就可以使用这种方法。

举个例子:当玩家按F的时候,灯就没了。

 

这里会用到初学者包中的灯蓝图,将这个蓝图拖入到场景中,打开这个蓝图,你会发现他里面的组件有一个static mesh 一个是point light。我们做开关灯其实就是对pointlight进行操作,那么我们在控制第三人称角色的时候,要如何改变这个灯蓝图中的属性呢?首先应该创建一个控制的灯的引用,对这个灯的引用进行操作。

虚幻引擎中蓝图间的几种通信方式_第1张图片

虚幻引擎中蓝图间的几种通信方式_第2张图片

在做完上面的操作后,回到关卡界面点击人物蓝图,记得要把我们的实例赋值给这里的引用!

二、cast类型转换

类型转换的原理是这样的:大多数情况是使用在人物身上有一个collision,然后当控制的人物触发了虚幻引擎中蓝图间的几种通信方式_第3张图片时,通过cast节点来改变碰到的actor中的某一变量。

三、事件分发器event dispatchers

事件分发器是使用:有一个需要发送事件的actor需要配置一个事件分发器。其他的所有的actor都可以对这个事件分发器进行监听(绑定事件到这个事件分发器器上)。当这些actor听到调用这件分发器的命令的时候,就会进行工作。

将这个事件分发器的流程比喻一下就是:  我们现在有个叫(老师)的蓝图,在这个蓝图下面有个事件分发器homework。有三个学生A、B、C,他们都在监听老师这个homework事件分发器,他们三个人听到命令的反应不一样,A是写作业B是抄作业C是撕作业。于是某一天下午,老师call了一下这个事件分发器(下发了作业),ABC三个人都听到了,然后就会开始干他们对应的事情。

虚幻引擎中蓝图间的几种通信方式_第4张图片

 

就比如上图所示,我们将一个叫抄作业的自定义事件绑定给我们的homework事件分发器,当事件分发器进行执行的时候(call)就会自动执行抄作业事件的活动了!

四、接口

接口可以给多的actor进行使用,所有使用这个定义的接口的actor都可以使用这个接口中的方法。

虚幻引擎中蓝图间的几种通信方式_第5张图片

虚幻引擎中蓝图间的几种通信方式_第6张图片

 

比如我们写一个当玩家走到门面前的时候门自动开启的蓝图时,便可以通过当玩家碰到某个actor的时候,就会触发一个蓝图接口的通信,告知碰撞到的actor,现在你可以使用这个接口的方法了,如果它是有用这个蓝图的方法的话,就会使用这个方法。比如上图所示当玩家触碰到门的时候就会发送一个接口通信告诉门,门接收到这个消息的时候,就会查看自己时候有对应的使用这个接口的地方,哎有!于是就出发开门的方法。

第一次写博客,如果有不对的地方,麻烦指正谢谢。

https://docs.unrealengine.com/4.27/zh-CN/ProgrammingAndScripting/ActorCommunication/

本文就是对官网文档中蓝图通信部分的个人总结。

 

 

 

你可能感兴趣的:(虚幻)