|
Previous Step
Next Step
How-To Home
在这个步骤中,我们会设置让玩家通过按钮来生成可射击岩石的逻辑(假设其它条件都已满足)。 在关卡中,我们定义了一些生成点,并且为了获得这些位置之一,我们将会使用 Event Dispatcher (事件调度器),它会在我们的 Level Blueprint (关卡蓝图)中触发事件(我们会在下一步创建该事件),从而获得这些位置之一,并将其发送到我们的角色蓝图。
首先,让我们使角色可以通过按键来生成可射击的岩石。
在 FirstPersonCharacter 蓝图中, 右键点击 图表中的空白空间,然后添加一个 F 关键事件。
按住 B 不放,然后在图表中 左键点击 ,从而创建 Branch (分支)节点。
在 isActive 变量中按住 Alt 键并拖曳,然后勾选框,并按下方显示内容进行连接。
按住 Control 不放,并拖入 isActive 和 Pulls 变量。
连接 isActive 到 != 节点(已勾选),并连接 Pulls 到 > 节点(设置为0)。
将两个输出都连接到 And 节点,并将其连接到 Branch (分支)的 Condition (条件)中。
在这里,我们设置了通过查看资源文件名称为 isActive 的变量是否为真,以及玩家的 Pulls 数量是否大于0来判断玩家是否可以生成岩石的逻辑。如果两者都为真,则我们会减少 Branch (分支)节点运算结果为真的数量并生成岩石(当然,这部分的脚本仍需要进行设置,请阅下文)。
按住 Alt 并拖入 Pulls 变量,然后在 Set IsActive 节点连接后进行连接。
在按住 Control 不放的情况下,再次拉入 Pulls 变量,并将其连接到 Int - Int 节点(设置为 1 )并连接到 Set Pulls 。
点击 Compile (编译),然后关闭 Set Pulls 节点,添加 ResetShots 自定义事件。
您的设置应该看起来类似于以下内容。
我们这样就设置完成了在玩家生成岩石时的逻辑,现在我们需要与关卡进行通信,从而获得生成位置。 我们会使用 Event Dispatcher (事件调度器)来执行此操作,它会在按下 F 时进行调用。 Level Blueprint (关卡蓝图)会监听事件调度器,而且当它被调用时,会触发其事件,从而获得生成点之一的位置,并将其传回角色蓝图。
点击 MyBlueprint 窗口中的 Add Event Dispatchers (添加事件调度器)按钮。
点击新事件调度器并在选择后按下 F2 ,然后重命名为 GetSpawnLocation 。
在 Reset Shots (重设射击次数)函数后的图表中,添加 Call GetSpawnLocation (调用GetSpawnLocation)节点。
此时将会添加事件调度器,这是由节点右上角处的信封图标来表示的。
在 GetSpawnLocation 节点下,添加 Spawn Actor from Class (从类中生成Actor)节点。
在 Spawn Actor (生成Actor)节点上,设置 Class (类)为 BP_Rock 。
另外在 Spawn Actor 节点上,拖放 SpawnLocation 变量到 SpawnTransform 引脚。
现在我们的角色蓝图已经设置完成,可以生成可射击的岩石并获得生成岩石的 Transform (变换)位置。
在下一步中,我们会使用 Level Blueprint (关卡蓝图)来获得生成点之一的位置,并在调用角色蓝图的事件调度器时传入该信息到角色蓝图(这样我们就可以在角色蓝图和关卡蓝图间传递信息了)。
Previous Step
Next Step
How-To Home
|
|