虚幻4蓝图入门实例4:一把钥匙开一扇门

一、门的蓝图事件构建

1.认识新的组件(门)

image
接着上回实现按键开关门后,我们来认识一下这次所需要的一些蓝图事件组件,首先是这个“分支”(Branch),顾名思义,就是一种判断,所以有着true和false两个可能的选择,又不同于之前所提到的Flip Flop分支的判断更纯粹和简单明了,它的作用是判断一个东西是对或错然后进行任务输送,而不是像Flip Flop来判断事件情况然后输送走向

image
如名,该组件就是用来调试时打印输出字符结果的一个打印组件

2.初识变量

image
我们在事件蓝图的左边工具栏中可以直接添加变量组件,被添加的组件默认为一个布尔值(英文名:bool,一个能被判断为true或false),我们命名为开门条件

image
在选中我们的变量组件后我们可以在右工具栏中查看到细节,在这里我们可以更改它的类型,和默认值,因为我们理想中的门的一开始状态为关着的所以我们不勾选默认值的开门条件(不勾就默认为false)

3.连接蓝图事件组件

image
我们将我们的键盘E键直接接入分支,就是用E来传输任务,然后我们将我们建好的“开门条件”直接拖到蓝图事件表中,连接到分支的情景,这样分支就会来判断boll开门条件的bool来进行true和false的操作,那true就是进行开门,false就平台控制中显示“你需要钥匙”。完整蓝图如下!

image

那此时我们将门布局到场景中并进行按E开门将被提示“你需要钥匙”
image
而之后我们就要开始来创建我们的钥匙类从而来实现获取钥匙开门


二、钥匙蓝图的构建

1.认识所需组件

image

image
我们先搭建好我们的钥匙视图,由于我并没有钥匙模型,所以这里我用一个几何体来充当我们的钥匙,这里的盒子触发器我选用了Sphere Collision其实和之前的Box Collision没什么多大不同,只不过这个为圆形状的而已

image
获取类的所有actor在这里是作为一个我们进行操作其他蓝图类的桥梁,因为我们的钥匙是要和门有一个必要连接的而我们即又非直接在光卡蓝图中创建,关于蓝图类和关卡蓝图的相关随笔可浏览
https://www.cnblogs.com/nuoxiang/p/15671072.html

image
销毁Actor组件即让该组件在场景中消失,这样我们就可以达到一个获取钥匙的效果

2.连接蓝图事件组件

image
首先当我们进入可以拾取钥匙的区域后我们可以进行E来进行拾取,所以钥匙蓝图的前半部分为上图

image
我们添加“获取类的所有actor”并选择类为我们之前的门的蓝图类(这里我的门的蓝图类为:openthedoor_bp)

image

image
我们从“获取类的所有actor”的“Out Actors”拉出一条连接线然后搜索get(复制)选择添加,这里的get的存在定义是为一个数组的存在,因为数组是从0开始的,而我们这里的任务为一把钥匙开一扇门,所以我们在get的数值填写0即可,若是这把钥匙不是开我们的第一扇而是第二扇时我门就改为1,以此类推

image

image

那这时的我们就在获取的蓝图类(opethedoor)中可以进行它的变量(开门条件)进行设置将开门条件打上勾,我们就将开门条件这个bool值变为了true,最后我们再销毁我们捡到的钥匙。钥匙蓝图整体事件蓝图如下图所示
image


三、最后的测试

1.拾取钥匙

image

2.开门

image


四、总结

本次实现钥匙开关门是一种互动感的增强,在许多游戏中我们都有所体验过这类的互动效果,而利用这样的互动理念我们能衍生更多的互动方式和方法,从而更好到实现实时互动和真是互动体验,许多解密游戏也是通过bool变量来进行着整个游戏的流程控制。
门的自动开关和互动实现就先到这里告一段落了,而之后可能会取做一些其他现时接触类的蓝图,从而引进更多的蓝图组件和学习知识,最后再以综合案例来巩固和完善我们的蓝图构思。

posted @ 2021-12-13 13:19  烟雨绕安宁  阅读(394)  评论(0编辑  收藏  举报