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

Posted reluctante1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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+空格+要调用的事件名。

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

ps.关卡蓝图不能调用类蓝图中的自定义方法。

 

以上是关于UE4复习2_信息交互(上)的主要内容,如果未能解决你的问题,请参考以下文章

UE4运行时交互工具框架

Building Worlds In Unreal 学习笔记——24-28 UE4.26的河流系统/自动河床材质/浮力/交互水面

Building Worlds In Unreal 学习笔记——24-28 UE4.26的河流系统/自动河床材质/浮力/交互水面

UE4蓝图与C++交互——射击游戏中多武器系统的实现

UE4与WEB服务器交互 json

UE4 利用WEBUI插件完成UE与JS的交互 (UE4嵌入WEB)