UE4复习2_信息交互(上)

1.自定义事件(函数调用事件)

自定义事件可以在函数中被调用,实现了函数调用函数外事件

在蓝图中右键,输入custom event,点击创建事件

 这个事件打印了一个wow的字符串。

 然后在某函数中,右键输入自定义方法的名称,就会出现 call custom event。

这样就实现了用别的事件触发printwow这个函数,然后函数再去调用custom event这个过程。

比如这样

ps.用的是一个简单的,打印字符串的功能作为例子。一般来说自定义事件都比较复杂,用函数直接调用可以减少很多不必要的工作。

也可以用命令行进行调用, ce+空格+自定义事件名称

2.类蓝图调用场景中其他actor或类蓝图

 左圆锥为类蓝图BP_M,右圆环为类蓝图BP_N

第一种思路就是在BP_M的类蓝图中添加一个变量,并且将该变量的类型改成要调用的actor 的类型。可以在场景中点击他看他的type。

下面具体介绍如何在类蓝图M中调用N中的事件或者函数。

首先,在M中添加变量,并修改类型为BP_N,可以把该类型改成public,便于选取。

编译并保存后,在场景中点击M,会发现多了一个属性,即选取哪个BP_N,

 

 

 也可以用后面的吸管工具在场景中选取该对象。

 比如图中,按E打印输出N的name;

ps.需要注意的是,右下角input选项里,auto receive input要选成我们目前的角色。做改动之前是default,是不接受我们输入的。

在n的蓝图中添加一个自定义事件,命令n旋转(因为之前选了个圆环,旋转看不出来,所以现在换成一根棍状的模型了)

 

 

编译并保存后 按E, 棍棍就开始旋转了。

 调用函数同理。

第二种思路是借用中间量。 

具体步骤如下。首先在一个在场景中绝对会存在的蓝图类(比如角色)作为桥梁,先在其中添加需要调用的变量,并在场景中指认。

 注意要把PAWN转换成我们使用的类型,在这里是ThirdPersonCharacter,转换之后才可以在里面找到BP_N。

 ps.上述两种方法,都需要在场景中事先指认变量N,如果想要在游戏进行过程中再进行指认怎么办呢?

 复制了两根棍棍,name分别是BP_N, BP_N2, BP_N3。

假如我们只想让BP_N3进行旋转,就需要用到 get all actors of class这个函数。它是用来获取场景中某类物体,并输出一个以该类物体为元素的数组的函数。

 这样就只有第二根棍旋转了。

3.类蓝图调用关卡蓝图中的自定义事件

可以用命令行的方式。

在类蓝图中,调用函数,Execute Console Command

command里面写 ce+空格+要调用的事件名。

就可以实现类蓝图调用关卡蓝图的自定义事件。

原文地址:https://www.cnblogs.com/reluctante1/p/12709628.html