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判断,结果如下:
在这里插入图片描述
可以发现,通过这个接口,返回了多个投射检测结果。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值