蓝图中生成/摧毁 Actor

在本页中,您将了解如何在蓝图中生成 Actor 并定义其生成位置。您还将了解如何摧毁已生成的 Actor。

生成一个 Actor

您将通过下面的步骤了解如何在关卡中一键生成 Actor。

  1. 打开任意项目,进入编辑器后,单击 Blueprints 按钮并 Open Level Blueprint.

    GHT1_1.png

  2. Blueprint Editor 窗口即会打开(如下所示).

    为了生成一个, 我们需要使用Spawn Actor from Class 节点. 在本示例中,我们要使用层级蓝图, (Level Blueprint), 但您也可以在多数蓝图中使用Spawn Actor from Class 节点,它位于下面所示的调色板(Palette)窗口中。

  3. Right-click 图表上的任意位置,然后在弹出菜单中搜索并添加 Spawn Actor from Class 节点.

    GHT1_5.png

  4. The Spawn Actor from Class 节点将被添加到图表 (简称**SpawnActor** ).

    GHT1_4.png

    Spawn Actor from Class 节点带有一个 Actor 类(通过类输入指定并尝试在世界中生成一个属于该类的实例。生成变换(Spawn Transform)输入用于定义 Actor 在世界中的生成位置(及其初始方向)。如果这个位置被碰撞体阻挡,Actor 将无法生成,除非将“即使碰撞也生成”(Spawn Even if Colliding)输入设置为 True。

    Spawn Actor 节点上的每个针都如以下介绍.

    GHT1_6.png

    数字 说明
    Execution Input (1) T这是一个执行输入,用于触发节点来生成 Actor。
    Class (2) T这是您在世界中生成的实例所属的 Actor 类(必需)。
    Spawn Transform (3) 这种变换用于对世界中的 Actor 进行定位和定向。
    Spawn Even If Colliding (4) 决定了在有物体阻挡生成地点时是否生成 Actor。
    Execution Output (5) 这是一个执行输出,可以触发在“生成 Actor”之后出现的脚本。
    Return Value (6) 可以输出世界中生成的新 Actor 实例。
  5. 单击 Class 下拉菜单,然后从希望生成的 Actor 列表中选择一个 Actor。

    GHT1_7.png

  6. 选择了要生成的 Actor 之后,节点将进行更新,然后会添加一个新的针。

    GHT1_8.png

    “发起者”(Instigator)为可选项,以 Pawn 的形式负责让生成的 Actor 产生伤害效果。

  7. Left-click 并将 Spawn Transform 针拖出到左侧,然后在弹出菜单中搜索并添加 Get Actor Transform

    GHT1_9.png

    Get Actor Transform 节点会告诉 Spawn Actor 在哪里生成我们想要生成的新 Actor。

  8. Left-click 并拖出 Get Actor Transform 针,然后在弹出菜单中搜索并添加 Get Player Character

    GHT1_10.png

    意思就是获取玩家角色,然后获取其变换值并分配到 Spawn Transform

  9. Right-click 图表上的任意位置,然后在弹出菜单中搜索并添加 F 按键事件。

    GHT1_11.png

  10. Pressed 针连接至 SpawnActor 节点的 Execute Input 针。

    GHT1_12.png

    这样做是为了在按下 F 时执行 SpawnActor,并按照玩家角色的变换值来生成 Actor。

  11. 单击 Compile 按钮,然后关闭 Blueprint

    进行编译前:

    GHT1_13.png

    成功编译后:

    GHT1_14.png

    如果您看不到绿色勾选标记,请确定所有节点都已连接,而且在 SpawnActor 节点上指定了 Actor Class

  12. 在主窗口中,单击 Play 按钮在编辑器中运行程序。

    GHT1_15.png

    如果按下 F,您所选的 Actor 应在玩家人物所在的世界地点生成。

T该示例展示了一键生成 Actor 的过程,您也可以使用任意数量的事件来执行 SpawnActor 节点。

请参阅 蓝图用户指南 了解关于 Blueprints 用法的更多信息。

设置一个生成点

如果您要在指定位置生成一个 Actor,可以手动设置变换或引用其他 Actor 的变换。

下面的示例将向您展示如何手动设置变换以及引用 Actor 的变换来作为生成地点。

  1. 打开任意项目,进入编辑器后,单击 Blueprints 按钮并 Open Level Blueprint

    GHT1_1.png

  2. 在图表窗口中,Right-click 并搜索和添加 Spawn Actor from Class 节点。

    GHT1_5.png

  3. SpawnActor 节点上,单击 Class 下拉菜单并选择一个要生成的 Actor。

    GHT1_7.png

  4. 最小化 Level Blueprint 窗口。

  5. 在主编辑器窗口的 Modes 中,搜索 Target 并将一个 Target Point 拖入到您的层级。

    GHT1_16.png

  6. 返回到 Level Blueprint 窗口,然后在图表中 Right-click 并选择 Add Reference to TargetPoint

    GHT1_17.png

  7. Left-click 拖出新添加节点的外针,然后搜索并添加 Get Actor Transform

    GHT1_18.png

  8. Get Actor Transform 节点的 Return Value 连接至针中的 Spawn Transform

  9. 在图表中 Right-click,然后搜索并添加 F 按键事件,之后释放 Pressed 并将其连接至 SpawnActor

    GHT1_19.png

    我们用了一个按下按键(Key Press)事件来执行 SpawnActor 节点,但您也可以使用任何方法。

  10. Compile 并关闭 Blueprint,然后在编辑器中运行,您应该会看到您的 Actor在目标点生成。

    除了靠引用 Actor 指定生成点之外,您还可以手动输入 SpawnActor 的生成变换值,具体步骤如下:

  11. 拖出 SpawnActor 节点的 Spawn Transform 针,然后选择 Make Transform

    GHT1_21.png

  12. 这将创建出一个 Make Transform 节点,您可以为其手动输入 LocationRotationScale

    GHT1_22.png

摧毁一个已生成的 Actor

在您生成一个 Actor 之后,假设您想摧毁它(例如,玩家杀死了这个 Actor,或者将这个 Actor作为捡拾物品捡起)。

以下步骤可用于在层级蓝图中摧毁一个已生成的 Actor。

  1. 打开任意项目,进入编辑器后,单击 Blueprints 按钮并 Open Level Blueprint

    GHT1_1.png

  2. 在图表窗口中,Right-click 并搜索和添加 Spawn Actor from Class 节点。

    GHT1_5.png

  3. SpawnActor 节点上,单击 Class 下拉菜单并选择一个要生成的 Actor。

    GHT1_7.png

  4. Left-click 并拖出 Spawn Transform 针,然后添加一个 Get Actor Transform 节点。

  5. Left-click 并拖出 Get Actor Transform 节点,然后添加一个 Get Player Character 节点。

  6. 在图表空白处 Right-click,然后搜索 F 按键事件节点并将其连接至 SpawnActor 节点。

    GHT1_12.png

  7. Left-click 并拖出 SpawnActorExecute Out 针,然后添加一个 Delay 节点。

  8. Delay 节点上,将持续时间设置为 3(这是我们摧毁 Actor 之前等待的秒数)。

  9. Left-click 并拖出 SpawnActorReturn Value,然后添加一个 Destroy Actor 节点,随后按以下方式连接。

  10. Compile 后关闭 Blueprint,然后在编辑器中运行,您应该会看到 Actor 在玩家位置生成,然后又在3秒后消失。

如同靠执行 SpawnActor 节点来生成 Actor 一样,您可以根据自己的需要通过几种不同类型的触发事件来摧毁 Actor。

请参阅 蓝图用户指南 了解关于蓝图用法的更多信息。