使用 Single Line Trace (Raycast) by Channel

此指南说明如何使用 Single Line Trace by Channel 蓝图节点返回命中的首个 Actor(在 Visibility 通道上形成响应),并输出其名称。

Choose your operating system:

Windows

macOS

Linux

本页面的内容

Line Trace By Channel 将沿给定的线执行碰撞追踪并返回追踪命中的首个物体。以下是设置 Single Line Trace By Channel 的步骤。

步骤

  1. 使用 包括 Starter ContentBlueprint First Person 模版创建新项目并打开项目。

  2. FirstPerson/Blueprints 文件夹中,打开 BP_FirstPersonCharacter 蓝图。

  3. 在图表中单击右键,搜索并添加一个 Event Tick 节点。

    Add an Event Tick node

    这会导致追踪每帧运行。

  4. 从执行引脚连出引线,然后搜索 LineTraceByChannel 节点。

    Search for the Line Trace By Channel node

  5. 按住 Ctrl 键,拖入 First Person Camera 组件。

    Drag in the First Person Camera component

    我们便会从这个摄像机开始追踪。

  6. First Person Camera 节点连出引线,添加一个 Get World Location 节点,然后将其连接到追踪的 Start

  7. 再次从 First Person Camera 节点连出引线,添加一个 Get World Rotation 节点。

    Add a Get World Rotation node

    我们从 FirstPersonCamera 的位置开始追踪,然后获得 FirstPersonCamera 的旋转。

  8. Get World Rotation 节点连出引线并添加一个 Get Forward Vector,然后再从此处连出引线并添加一个 Vector * Float 节点,设为 1500

    Drag off the Get World Rotation node and add a Get Forward Vector then drag off that and add a Vector Multiple Float node set to 1500

    获得旋转和向前矢量后,然后将其向外延伸 1500(此值为追踪的长度)。

  9. Get World Location 节点连出引线并添加一个 Vector + Vector 节点,然后(按下图所示)连接到追踪节点的 End

    Drag off the Get World Location node and add a Vector Plus Vector node connecting to the End of the Line Trace By Channel node

    我们在此使用 FirstPersonCamera 的位置并将其向外延伸 1500 个单位(基于其旋转和向前矢量)。

  10. 在追踪节点上将 Draw Debug Type 设为 For One Frame

    Set the Draw Debug Type to For One Frame on the Line Trace By Channel node

    进行游戏查看线条追踪时即可看到一条调试线。

  11. 从追踪的执行输出引脚连出引线并添加一个 Print String 节点。

    Drag off the execution out pin of the Line Trace By Channel node and add a Print String node

  12. Out Hit 引脚连出引线,搜索 Break Hit,然后添加一个 Break Hit Result 节点。

    Drag off the Out Hit pin and search for Break Hit then add a Break Hit Result node

  13. 从(Break Hit Result 的)Hit Actor 引脚连出引线,添加一个 To String (Object) 节点并将其连接到 Print String 节点。

    点击查看大图。

    这可以让我们调试输出追踪命中的对象。

  14. 点击 Compile 按钮,然后在编辑器中开始游戏,查看关卡中的立方体。

    Play in the Editor and look at the cubes in the level

    此处脱离了第一人称视角,便于从追踪射线的角度查看。

    追踪命中立方体后,便会把立方体的名称显示到屏幕上。

最终结果

上例将返回设为对提供的追踪通道产生响应的所有物体,然而有时候可能需要只返回特定的物体。上例中,可使用 Actors to Ignore 引脚接收应被追踪无视的 Actor 阵列(但这意味着必须指定需要无视的每个 Actor)。

也可执行 Line Trace By Object,只返回特定的 ObjectTypes。这样便能以(追踪中包含的)特定物体集为目标。