UE4信息交互-关卡蓝图内的交互


笔记为【风之神韵】蓝图进阶教学视频中讲解的内容。整理笔记是为了便于学习和查询。
UE4版本 4.8.1


一、事件调用函数的方式


1> 第一步:打开关卡蓝图(菜单Blueprints->Open Level Blueprint)
如图:
UE4信息交互-关卡蓝图内的交互_第1张图片


2> 打开关卡蓝图的图表,默认的情况都是通过 [Event Begin Play] 事件开始的.


通过单击鼠标右键创建 [Event Begin Play] 事件
[Event Begin Play]事件是,游戏中所有物体加载完成后触发此事件。


3> 在来创建一个节点[Print String]
[Print String]函数用来在屏幕左上方打印一条语句。

4> 将[Event Begin Play]与[Print String]进行连接
如图:

UE4信息交互-关卡蓝图内的交互_第2张图片



5> 将在屏幕的左上角打印出 [helle] 字符串
如图:
UE4信息交互-关卡蓝图内的交互_第3张图片


通过[Event Begin Play] 事件去调用[Print String]函数
由于[Print String]函数是C++底层实现的,不能双击查看实现内容。



二、创建自定义函数间接交互


1> 创建自定义函数
在关卡蓝图左边找到[MyBlueprint]->[Functions]选项。
单击[+]创建一个函数并修改函数名称为[PrintStringCustom]
创建一个自定义的打印函数并封装UE中的[Print String]函数
图4
UE4信息交互-关卡蓝图内的交互_第4张图片

图5
UE4信息交互-关卡蓝图内的交互_第5张图片

2> 当新建自定义函数后,关卡蓝图中会自动出现一个[Print String Custom]图表
1)在[Print String Custom]图表中,新建[Print String]函数并打[Hello]字符串
2)在新建[Print String]函数并打[There!]字符串
3)将[Print String Custom]与[Print String]进行连接
4)这样就完成了[Print String Custom]自定义函数的实现。
[Print String Custom]函数功能就是连续打印两个字符串。
如图6
UE4信息交互-关卡蓝图内的交互_第6张图片



3>回到[Event Graph]图表中来调用刚刚创建的[Print String Custom]函数


1)在左边的函数列表中找到[Print String Custom]函数并拖拽到[Event Graph]图表中
由于是自定义的[Print String Custom]函数,双击此函数就可以查看函数的内容。
如图7
UE4信息交互-关卡蓝图内的交互_第7张图片


2)然后,将[Event Begin Play] 事件连接到[Print String Custom]函数
然后屏幕左上角打印了[Print String Custom]函数输出的字符串
如图8

UE4信息交互-关卡蓝图内的交互_第8张图片
如图9
UE4信息交互-关卡蓝图内的交互_第9张图片

这就是通过自定义[Print String Custom]函数去间接的去调用[PringString]函数.





三、创建自定义事件交互


事件:没有输入只有输出的,主动执行的这样的结点,都是事件。如[Event Begin Play]
其实本质上还是有输入的,只过这些调用是在C++底层去处理。在蓝图层面上,我可以理解为自动触发。


1>在[Event Graph]图表中,空白处右键在搜索框中输入[custom]
选择[Add Event]->[Add Custom Event]
图:10
UE4信息交互-关卡蓝图内的交互_第10张图片

2>修改新生成的自定义名称为[CE_PrintString]
图:11
UE4信息交互-关卡蓝图内的交互_第11张图片

3>自定义的事件[CE_PrintString]如何让它去触发呢?
可以在其它的位置去驱动调用它,不会像函数从左边连入从右边连出的形式。


4>新建[PringString]函数,当自定义事件触发后会打印字符串.字符串为[CE_PrintString  Event Fire]
图:12
UE4信息交互-关卡蓝图内的交互_第12张图片

先删除其它不需要的输出信息,然后编译并运行.
但是屏幕上没有输出会任何信息。原因是没有任何地方调用自定义[CE_PrintString]事件。




5>在[Event Graph]图表的其它位置,按右键输入[CE_PrintString]
选择[Call Function]->[CE Print String] 事件。 那什么进候调用呢?


6> 新添加键盘上的[F]事件,当用户按下键盘上的F键时,就会触发[CE_PrintString]事件。
图:13

UE4信息交互-关卡蓝图内的交互_第13张图片
触发顺序是,当按下F键时,上面F键是先触发的[CE_PrintString]事件,然后[CE_PrintString]事件在调用[Pring String]函数
图:14
UE4信息交互-关卡蓝图内的交互_第14张图片

这是通过第三种方式,自定义事件来做消息交互。




四、示例在自定义的函数中调用自定义事件


1>在自定义的[Print String Custom]函数中调用[CE_PrintString]自定义事件


这样就实现了在函数里面去调用函数外面全局的事件
图:15
UE4信息交互-关卡蓝图内的交互_第15张图片

2>在[Event Graph]图表中用[Event Begin Play] 事件连接到[Print String Custom]函数
当点击[Play]后,屏幕上打印了三条输出语句。
这样就实现了在函数内部调用自定义事件的方式。
图:16
UE4信息交互-关卡蓝图内的交互_第16张图片




需要说明的是:
1>在函数内部是无法自定义事件的。在函数内部右键是没有[Add Event]->[Add Custom Event]。
函数是局部的不能建立全局自定义事件的。
自定义事件生命周期为游戏的开始到结束。
函数的生命周期为调用开始时到执行结束后。


你可能感兴趣的:(UE4学习笔记)