使用 Multi Line Trace (Raycast) by Channel

此指南说明如何使用 Multi Line Trace by Channel 蓝图节点返回在 Visilibity 通道上响应的所有 Actor,并输出它们的名称。

Choose your operating system:

Windows

macOS

Linux

本页面的内容

Multi Line Trace By Channel 将沿给定线条执行碰撞追踪,并返回所有遭遇的命中,直到并包含首次阻挡命中,只返回对特定追踪通道响应的对象。这就意味着追踪的开始和结束之间有多个带碰撞的 Actor组件 与特定的追踪通道发生 重叠,而您将接收到所有的 Actor 和组件。但是,如果首次命中 阻挡 了特定的追踪通道,则只会接收到这一个内容。如希望无视追踪通道的重叠或阻挡接受所有内容,则需要使用 Multi Line Trace By Object节点。以下是设置 Multi Line Trace By Channel 的步骤。

步骤

  1. 按照用于

    [Line Trace By Channel](making-interactive-experiences/Physics/tracing/HowTo/SingleLine Trace By Channel)
    范例的步骤设置追踪。

  2. Multi Line Trace By Channel 节点替代 Line Trace By Channel 节点。

  3. Out Hits 引脚连出引线并添加一个 ForEachLoop 节点。

    Drag off the Out Hits pin and add a For Each Loop node

    因为命中了多个 Actor,我们将对每个 Actor 进行一些操作(此例中是将 Actor 显示到屏幕上)。

  4. Array Element 连出引线并添加一个 Break Hit Result;然后从 Hit Actor 连出引线,添加一个 Get Display Name (Object) 并连接到 Print String

    Click image for a full view.

    每个被阵列命中的 Actor 将被输出到字符串。

结果

此处的物理 Actor 前有一扇玻璃窗。

A Glass Window in front of a Physics Actor

玻璃窗是 可破坏网格体,我们已对它的 Trace Response 进行设置, 碰撞设置中的 Visibility 设为 Overlap;而物理 Actor(立方体)的 Visibility 则设为 Block。这样的设置可用于射穿物体(将其摧毁)并击中敌人的情形。