使用 Single Line Trace (Raycast) by Channel

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

Windows
MacOS
Linux
本页面的内容

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

步骤

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

  2. FirstPersonBP/Blueprints 文件夹中,打开 FirstPersonCharacter 蓝图。

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

    GHT2B_1.png

    这会导致追踪每帧运行。

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

    GHT2B_2.png

  5. 按住 Ctrl 键,拖入 FirstPersonCamera 组件。

    GHT2B_3.png

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

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

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

    GHT2B_4.png

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

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

    GHT2B_5.png

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

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

    GHT2B_6.png

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

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

    GHT2B_7.png

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

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

    GHT2B_8.png

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

    GHT2B_9.png

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

    点击查看全图。

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

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

    GHT2B_11.png

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

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

最终结果

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

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

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见