赞
踩
当小白人靠近,则打开门,离开则自动关上门。
对门进行碰撞设置----双击并添加盒体碰撞;门改为可移动性。
对门添加感应装置----盒体触发器
选中门-----在蓝图里面右键为其创建一个引用(为的是让这个门进行旋转,门就是这个事件的目标)
此时当这个小白人靠近门时,门就是进行一瞬间的旋转,没有一个工作的过程。
添加时间轴----右键搜索时间轴(汉化版本不用英文搜索)
-
创建一个Actor
添加一个门框和门组件都是静态网格体组件----右边的Static Mesh进行搜索相应的部件。
旋转门的时绕着右下的端点进行开关门的操作,因此该部件的坐标轴就不能是在中心,而是在右下角 — 解决办法—就是把在3D建模软件进行移动坐标轴到右下角。
触发盒子和门必须是同级,如果不同级的话,门旋转,触发盒子也会旋转,但是实际上要转的只是门。
看下面这个图的区别:设置Actor相对旋转是类里面的全部组件都要进行旋转,其余两个是类里面某些组件进行旋转,不同的是相对位置和绝对位置的区别。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
其余设计与上面一样,这样做的好处是我们很容易的做出上千扇门,不用一个一个进行设计。
由此就得到上面Door_BP的一个蓝图类了,直接拖动即可。
首先了解Gate节点,以我们的开关门的例子来说,当靠近门时,说明它是可以打开这门条件,实际上是没有打开门,需要我们按下E并且靠近门才能打开,E相当于是个钥匙,而Gate相当于if条件判断。通俗一点,靠近门拥有打开门的条件,离开是拥有关上门的条件。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Jxp4Aw1-1683040024808)(null)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vr9DtV5m-1683040018521)(C:/Users/王川/AppData/Roaming/Typora/typora-user-images/image-20230325222621912.png)]
还需要让系统能够识别到按键的操作,添加了启用输入和禁用输入两个节点,从这两个节点可以看出Player Controller是谁?让这个控制器告诉我们是否开启了这个键盘的输入----获取玩家控制器节点。
也就是说开启角色输入,按键的输入才能够有效。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-siTS1kB7-1683040024828)(null)]
Flip Flop节点的意思是第一次走A,第二次走B,第三次走A,以此类推。相当于第一次按E开门,第二次按E,就是关门。
首先将点击时节点替换掉上面的按键E,打开世界场景设置,点击+,进入并勾选;目的是为了设置鼠标能够门上显示鼠标这个标记。
连成下面这个类型,记得把上面的显示鼠标光标取消掉。
----前面部分与鼠标点击开关门是一样的蓝图,仅仅是最后部分不一样,旋转门的大小设置也就是插值节点进行手动插值。这个门的还有做法就是人在门的那个方向,开门的时候往反方向开门,需要对其进行判别。
看一看时间轴的相关功能
---首先建立一个用按键实现的开关的蓝图类,如图所示。
我们要做的是拾取钥匙开门,意思我们要有钥匙在,才能开启门,因此在按下键盘e时,还要判断是否有钥匙,有钥匙判断为能开门,没有钥匙则不能。
新建一个变量门是否能开门,并设置布尔变量:
分支这个节点相当于if条件判断,为True进行开门操作,为false 提示尼没有钥匙。接下来就是当我们拾取到这个钥匙,想办法让这个门是否能开门节点打勾,一定是拾取了钥匙这个操作,才能打勾,千万不能直接设置为默认值打勾,如果直接设置默认值打勾,就不需要拾取钥匙这个操作了,按下e直接就能开门了。
设置钥匙蓝图类,仅仅演示操作,钥匙用的立方体进行代替,并且添加球体碰撞体。
按下e进行拾取操作,与前面一致。
ll)]
与开关门蓝图类建立通信,out Actors指的是场景中的所有蓝图类实例化,假设场景中有一百扇门,这个指的就是100扇门的数组。
Get 这个这个节点是获取这个数组中某一个元素的引用,
目的是为了门是否能打开这个节点为是这个操作,即为set节点打上勾,两个蓝图类就建立了通信。销毁Actor节点是在我们拾取钥匙这个操作之后,地面上的钥匙就应该消失,也就是c++的销毁释放操作。
钥匙蓝图类:门蓝图类:
是否能打开**这个节点为是这个操作,即为set节点打上勾,两个蓝图类就建立了通信。销毁Actor节点是在我们拾取钥匙这个操作之后,地面上的钥匙就应该消失,也就是c++的销毁释放操作。
钥匙蓝图类:
门蓝图类:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。