您现在的位置是:首页 >技术教程 >UE中的channel网站首页技术教程

UE中的channel

电子云与长程纠缠 2023-05-23 12:00:03
简介UE中的channel

当我们需要处理碰撞矩阵,或者调用接口投射射线进行检测等,为了区分哪些对象可以被射线检测到,哪些对象忽略,就需要用到channel。

1.Channel 简介

在UE5中,一个对象的channel可以在Physics下查看:
在这里插入图片描述
设置成custom就可以进行修改:
在这里插入图片描述

如果要自己添加预设,可以在Project Settings->Collision处进行设置,包括增加channel:
在这里插入图片描述

注意,修改完Project Settings中的碰撞信息后,需要重启UE工程才会生效。

此外,channel分为Object Channel与Trace Channel,它们的意义如下:

  • Object Channel - 用于对象与对象间的碰撞,如A对象碰到B对象会不会触发碰撞事件。
  • Trace Channel - 用于调用接口进行射线查询、球体查询等,可直接设置查询的Trace Channel。

2.蓝图调用Trace接口

下面演示一下蓝图调用Trace接口。
首先确保创建了一个Trace Channel,并且指定这个Channel会对哪个层产生Block,然后新建一个Actor蓝图,要用这个Actor的Forward方向发出射线进行检测,蓝图如下:
在这里插入图片描述
上述蓝图在Tick函数中执行,因为设置了Draw Debug Type函数所以会绘制调试信息,运行后如下:
在这里插入图片描述

3.蓝图调用Multi Trace接口

除了各类Trace By Channel接口外,还有Multi Trace…接口,使用这类接口时需要将Channel的预设设置为Overlap,而不是Block,否则即使是多对象检测,返回的还是单个结果。

此时在地面加一个方块,以进行测试,蓝图检测处需去掉Blocking Hit判断,结果如下:
在这里插入图片描述
可以发现,通过这个接口,返回了多个投射检测结果。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。