使用 Multi Line Trace (Raycast) by Channel

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

Windows
MacOS
Linux
On this page

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

步骤

  1. 按照用于LineTraceByChannel 范例的步骤设置追踪。

  2. MultiLineTraceByChannel 节点替代 LineTraceByChannel 节点。

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

    GHT2B_18.png

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

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

    点击查看全图。

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

结果

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

GHT2B_17.png

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

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback