返回 导航

UE5

hangge.com

UE5 - 射线检测使用详解3(新建自定义检测通道)

作者:hangge | 2025-10-16 09:13
    在复杂项目中,我们需要让不同类型的射线命中不同的对象。例如:玩家角色的交互射线只能检测交互物体;武器射线只能检测敌人;使用自定义检测通道可以帮助我们精准控制哪些对象可以被某类射线命中,哪些不行,从而提升性能和逻辑清晰度。下面我将通过样例演示如何新增检测通道。 

三、添加自定义检测通道

1,新建检测通道

(1)前面文章中我们都是使用 Unreal Engine 5 自带的检测通道,除此之外,我们还可以手动在某个项目中添加加单独的检测通道。执行“编辑 > 项目设置”菜单命令,打开“项目设置”窗口。

(2)我们可以在“引擎 - 碰撞”卷展栏中可以添加对应的通道。单击“Trace Channels”卷展栏中的“新建检测通道”按钮新建检测通道,然后在打开的“新建通道”对话框中设置“命名”为“Sphere”,"默认响应”为“Ignore”,否则所有的组件都可以产生响应,最后单击“接受”。

2,使用新建的检测通道 

(1)在“内容浏览器”面板中新建一个“Actor”类蓝图并命名为“BP_LineTrace”,双击进入蓝图,在“组件”面板中单击两次“添加”按钮,新建两个场景组件并将它们分别命名为“Start” 与“End

(2)新添加的两个场景为平级关系。

(3)拖曳“Start”组件与“End”组件到视口中的两个不同位置

(4)在“事件图表”面板中新建一个“按通道进行线条追踪”节点并添加相关逻辑,进行线条射线检测。
  • 这里我们将“按通道进行线条追踪”节点的“Trace Channel”设置为刚刚新增的 Sphere

(5)将“BP_LinefTrace”蓝图拖曳到关卡中,进入 PIE 运行模式,可以看到两个组件之间生成了射线。

(6)我们射线中添加一个正方体,检测响应中勾选 Sphere 通道的“阻挡”选项
  • 再次运行可以看到成功发生了碰撞,并且输出了撞击位置的坐标参数。

(7)如果将正方体检测响应中勾选 Sphere 通道的“忽略”选项。
  • 再次运行可以看到不会发生碰撞:
评论

全部评论(0)

回到顶部