UE MultiLineTraceByChannel函数返回只有一个对象的问题
问题描述
MultiLineTraceByChannel,看函数名字是返回射线检测到的所有对象,实际使用过程中,发现返回的数组中只又一个对象。
Multi Line Trace by Channel
可以看下官方的文档解释:
此指南说明如何使用 Multi Line Trace by Channel 蓝图节点返回在 Visilibity 通道上响应的所有 Actor,并输出它们的名称。
Multi Line Trace By Channel 将沿给定线条执行碰撞追踪,并返回所有遭遇的命中,直到并包含首次阻挡命中,只返回对特定追踪通道响应的对象。这就意味着追踪的开始和结束之间有多个带碰撞的 Actor 或 组件 与特定的追踪通道发生 重叠,而您将接收到所有的 Actor 和组件。但是,如果首次命中 阻挡 了特定的追踪通道,则只会接收到这一个内容。如希望无视追踪通道的重叠或阻挡接受所有内容,则需要使用 Multi Line Trace By Object节点。以下是设置 Multi Line Trace By Channel 的步骤。
所以,如果第一个是Block的碰撞体,根本就不会返回后面的命中检测对象。
看文档中的示例,可以看出该功能是为了命中玻璃后面的目标设计的。
Multi Line Trace By Object
如果你希望能够返回多个对象,可以使用Multi Line Trace By Object 方法。 官方文档如下:
此指南说明如何使用 Multi Line Trace by Object 蓝图节点返回其命中的全部世界动态 Actor,并输出它们的名称。
MultiLineTraceForObjects 将沿给定的线执行碰撞追踪并返回所有遭遇的命中,只返回与特定物体类型相匹配的物体。以下是设置 MultiLineTraceForObjects 的步骤。
结语
最后,关注公号“ITMan彪叔” 可以添加作者微信进行交流,及时收到更多有价值的文章。