Unity转Unreal5从入门到精通之不同的Actor之间如何交互

前言

Unreal不同的Actor蓝图之间如何交互
当我们使用蓝图时,当碰到交互的时候,可能会有点蒙,平时我们写代码,A调用B的函数,非常简单。那么在蓝图中,我们如何调用呢?下面我们来一一讲解

通过函数

在蓝图中新建函数,右侧细节中,可以设置访问修饰符,即public代表公开,private代表私有,protected代表受保护
在这里插入图片描述
函数还有几个特殊点
1.函数可以设置局部变量,就和我们的普通函数体一样,内部可以新建局部的变量
2.函数可以设置输入参数,类似我们平时的函数体,public void Test(int a){}
3.函数可以设置输出返回值,比如public int Test(){}
如下所示:ActorB中可以调用A的Function函数
在这里插入图片描述

通过事件

事件类似函数,但是又有一定的区别
1.函数有返回值,事件无返回值
2.函数调用会等待函数执行结果,事件调用只是触发但不会等待。
3.函数执行在同一个线程,事件执行在不同线程。
4.函数可以用局部变量,事件没有局部变量。
在这里插入图片描述
如下所示,ActorB可以调用ActorA中的事件
在这里插入图片描述

通过事件分发器

在ActorA中新建一个事件分发器,当满足一定条件后,调用这个分发器,可以把消息广播给其他Actor。
其他的组件,比如ActorB可以绑定这个事件分发,当A调用分发器是,B会接收到这个事件
其实他就是类似于Unity中的Event事件或者Delegate委托。一般都是自己调用,其他类来绑定。

如下,A中声明分发器,并在点击AnyKey时调用
在这里插入图片描述
ActorB中,我们在开始时绑定这个分发器委托
当ActorA点击任意按键时,这里就会相应,并调用Dispather事件,然后我们就可以在Dispatcher事件中来写监听逻辑了。
在这里插入图片描述

获取Actor组件

当我们得到一个Actor组件后,就可以调用他的函数,事件,以及分发器
那么我们如何获取Actor呢?
有如下方法

1.直接在编辑器赋值,然后在蓝图中可以直接使用。

在这里插入图片描述

在这里插入图片描述

2.通过组件查找

通过组件查找类似Unity的GetObjectOfType,但是你要保证你的场景中只有一个此类型的组件。
在这里插入图片描述

3.通过Tag值查找

通过Tag值查找某类型,首先必须指定Actor Class和Tag
然后,它的返回值时一个数组,你需要Foreach去便利使用。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TxNet.Ltd.

你的赞同是对我的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值