蓝图:变量/分支节点
在上一篇文章中,我们已经自己搭建了一个场景。而且,在此之前,我们也已经实现了“弹丸”的发射逻辑。
把之前的发射逻辑应用到现在的关卡上,操作很简单:我们进入之前的关卡蓝图,全选节点并复制;然后回到我们当前的关卡蓝图,进行粘贴即可。
在目前的发射逻辑上,我们还想增加一些逻辑。我们想限制“子弹数”,子弹打完了就不能再打了。要想实现这个逻辑,需要有一个变量记录当前的子弹数量,发射后更新子弹数。而且在发射之前,需要判断有没有子弹了,没有的话就不能再发射了。
1. 变量
我们先看如何在蓝图里创建变量。如图 1 所示,在蓝图窗体左侧,有“变量”一栏,可以点击加号创建一个变量。创建时需要指定变量名称和变量类型,此处设置名称为 ammoCount,类型为整数。

在右侧的变量“细节”窗体中,可以设置变量的初始值。此处设置初始有 8 颗子弹。
需要先点击左上角的编译按钮。编译之后才能设置初始值。
把变量拖拽到蓝图视图里,就可以使用这个变量。按照引导提示,可以选择是 Get 变量还是 Set 变量。
图 1 是获取变量的例子,我们在游戏开始时,打印提示我们的初始子弹数。
了解到有一个 Format Text 节点,能类似 printf 那样指定字符串。
如图 2 所示,我们了解设置变量。每次发射弹丸后,子弹数减一。我们首先获取到变量的值,然后连接 Subtract 减法节点减一,最后用新值 Set 变量。此处我们也把更新的子弹数,进行了打印提示。

2. 分支节点
我们继续实现判断逻辑。如图 3 所示,我们使用 Branch 节点。Branch 节点的输入需要是布尔类型,所以我们使用 Greater 判断节点,将弹药数和 0 比较。如果为真,则发射弹药;为假,则打印弹药用尽提示。

最终的效果如以下视频所示。