UE5笔记【十】第一个蓝图项目:bluePrint。

我们将上升的斜坡或者楼梯隐藏,往下移动,使其隐藏在地面以下。然后将方块也向下移动,漏出一点来。我们要模拟的场景是:当人移动到蓝色方块上时,踩在方块上,上升的楼梯升起来。然后人可以上楼。

将蓝色方块右键【浏览至资产】

 物体是一个静态网格。为此,为了实现操作。我们选择到【蓝图类】中,选择将其转换为蓝图类。

 并将其命名为BP_GroundTriggerCube。点击【选择】。打开蓝图编辑界面,才是方块,已经成为了一个蓝图。

 我们在盒体上面添加一个Box,如果这个Box被碰撞,那么代表有东西在盒体上。此时,触发楼梯上升事件。 

 我们给这个Box绑定事件:

 进入到事件图表中:

 事件图表

 首先我们需要等待,直到我们的玩家踩到立方体上。我们需要一个第三者作为观察者。当事件发生时,触发响应通知接受者。

 Cast to遵循【里氏转换法】。用第三人称的角色观察重叠的发生。

在这个例子中,我们就是检测是否有东西返回值为真True。

相当于甲方找来了一个监视者,这个监视者为甲方观察是否有第三人发生某件事,如果发生了,监视者返回一个True,否则返回False。这么做是为了确保与立方体交互的物体是第三个。

 如果事件发生了,需要做什么呢,我们希望盒体可以下降:从某一个高度值,降低到另外一个高度值。我们需要一个叫做:移动组件的节点:Move Component to。

他可以随着时间的推移,而发生某些改变。盒体可以慢慢下落,而不是直接跳闪。这样有个动画的过程。

 要使用这个节点,首先我们需要知道盒体当前的位置。然后将其位置值减去20个单位。从-80,减到-100作为盒体新的位置。

 为了做到这点(获取当前盒体的位置),我们把盒体拖入到编辑区,作为一个节点,获取其Z轴高度值。

有个操作细节:如果我们直接右键输入:Get relative location是搜不到这个节点的,这个节点,必须是先从节点中引连接线出来,然后再输入。否则搜不到。、

操作:鼠标按住左键选中引出节点,松开手,然后输入。

因为我们实际操作的是Z轴,所以我们需要将这个向量值分解成X,Y,Z。鼠标右键:如下图:【分解结构体引脚】

 基于此向量,我们要新建一个向量。作为新位置。

我们搜索结点: 【make vector】。

 这个新节点代表的位置:X和Y值,可以直接连接,但是Z值,需要做减法。所以我们需要在两个节点之间增加一个减法节点。搜索【subs】

 此时新位置产生了,需要将位置给移动组件MoveComponent to节点。连接到其Target Relative Location上,然后将监视者结果反馈给移动组件。最后,需要选择移动组件需要移动的对象。我们将我们的盒体重新拖出来。移动的就是这个盒体。

此时点击编译,保存,进入游戏中尝试一下。

 如果你的没有下降,请查看:你是否将其设置为【可移动】

 当你实际成功之后,你会发现一个新问题:盒体,接触下沉之后,当人离开之后,盒体没有再升起来。我们需要盒体升起来。此时需要对盒体引入一个新的事件。【组件结束重叠时】

 我们查看移动组件的返回值:

 我们需要把这个节点复制到下面,这样他就会寻找另一个actor对象。

让我们重新触发事件,再次引入一个第三者角色,然后将这个第三者角色返回值给移动组件的返回值。意思为:当重叠事件结束时,触发移动组件返回原位(停在原位)。

让我们再次编辑,然后保存,进入游戏尝试。

有一个新问题,我们每次过去踩一下,盒体都要下降,所以,我们需要设置一个阈值。如果盒体到达之后,就不要无限下降。

此外,我们还可以在蓝图中,设置:如果位置达到一定阈值。启动某个动作。需要Branch节点。类似于编程语言中的If-else。操作。

 我们假定,只有当盒体位置大于-80时,盒体才下降,所以,我们还需要一个比较运算符(节点。)。

连线如下;

 为了实现斜坡或者楼梯的升高。我们需要在组件中,新建一个新的网格体。 我们返回【视口】中。【添加】【静态网格体组件】

 这个网格实例我们起名为:Stairs。然后找到Stairs或者Linear_stairs。 

最后将这个实例,添加到游戏中。

此时需要两个界面互动,我们在视口中变换这个Stairs组件,在游戏界面中,其也相应改变。

此时我们留意,楼梯最后的位置高度是80。我们将其移动到地面以下,然后等事件触发,然后升起。此时高度为-30.上升110高度。此时,转入到蓝图【事件图表】中。

此时需要一个新的【移动组件结点2】【move componet to】

 然后我们拖动Stair,作为移动组件结点中的组件。

然后获取组件的位置。并将其分解为xyz。然后传递给移动组件结点2。

 此时目标位置:高度80.

 搞定了。

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值