5.摧毁石头

在这一节中,我们将使用一个绑定到OnHit的绑定事件,在我们的石头被击中时将其摧毁。

Windows
MacOS
Linux

在这一步中,我们将使我们的石头在被玩家射出的发射物击中时可以被摧毁。为此我们将使用另一个 绑定事件,但我们不会把它绑定到事件调度器。我们将使用一个名为 OnHit 的碰撞事件,它将会在我们的岩石的碰撞体被击中时触发,完美符合我们的要求。

让我们来炸掉一些东西吧!

  1. 回到 FirstPersonCharacter 蓝图内,在我们生成石头的地方找到 生成Actor(Spawn Actor) 节点。

  2. 生成Actor(Spawn Actor) 节点拖出 返回值(Return Value),然后选择 在Actor被击中时指定(Assign On Actor Hit)

    OnActorHit.png

  3. 连接 生成Actor(Spawn Actor)绑定事件(Bind Event)

  4. 生成Actor(Spawn Actor) 拖出 返回值(Return Value),然后选择 应用半径伤害(可破坏物)(Apply Radius Damage (Destructible))

    ApplyDamage.png

    我们可以使用 应用伤害(Apply Damage),但这样就需要输入更多参数。为了简单起见,我们将使用半径伤害。

  5. 应用半径伤害(Apply Radius Damage) 节点上,在下面显示的每个字段中都输入 50000,然后连接一个 获取Actor位置(Get Actor Location) 节点。

    EnterDamage.png

    这将确保我们制造足够的伤害,能够真正将石头炸成碎片。

  6. 应用半径伤害(Apply Radius Damage) 节点后面添加一个 设置分数(Set Score) 节点。

  7. 按住 Control 并拖入 Score 变量,将它连接到 整数 + 整数(Int + Int) 节点(设置为1),然后连接节点。

    IncreaseScore.png

    这将获取当前分数,然后每次在石头被击中时都加1。

  8. 绑定事件(Bind Event)设置分数(Set Score) 节点连接到设置为 3 秒的 延迟(Delay) 节点。

    DelayNode.png

    在石头生成3秒之后(无论它是否被击中),我们就会摧毁它。

  9. 延迟(Delay) 之后添加一个 销毁Actor(Destroy Actor) 节点。

    DestroyActor.png

    生成Actor(Spawn Actor) 节点拖出 返回值(Return Value),将它馈送到 销毁Actor(Destroy Actor) 节点的 目标(Target)

  10. 销毁Actor(Destroy Actor) 节点之后,添加 Set IsActive 变量节点,并且让它保持未选中状态。

    SetIsActive.png

    现在我们就可以说,生成的石头已经不再处于活动状态,因此玩家可以再生成一个(如果他们还有足够的拉动数)。

我们的核心Gameplay已经设置完毕,如果我们现在就在编辑器中运行,你将会看到自己可以在关卡中的随机生成点生成石头,然后射击并摧毁它。在下一步中,我们将向我们的HUD传递信息,根据角色蓝图中的数值更新显示数值。

标签

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见