Language:
Page Info
Skill Level:
Engine Version:
Share
此中文页面内容对应的英文页面有后续更新,如需浏览最新文档可切换至英文页面浏览。

使用 Multi Line Trace (Raycast) by Channel

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 连出引线,添加一个 To String (Object) 并连接到 Print String

    点击查看全图。

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

结果

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

GHT2B_17.png

玻璃窗是 可破坏网格体,我们已对它的 Trace Response 进行设置, 碰撞设置中的 Visibility 设为 Overlap;而物理 Actor(立方体)的 Visibility 则设为 Block

这样的设置可用于射穿物体(将其摧毁)并击中玩家或敌人的情形。