UE4-(蓝图)第二十一课射线

213 篇文章 586 订阅

一、射线节点

LineTraceByChannel:沿给定的线执行碰撞追踪,并返回首个阻挡命中,只返回对特定追踪通道响应的对象。

start:射线起始点

end:射线结束点

Trace Channel:检测通道

Trace Complex:针对复杂碰撞进行测试,false则针对简单碰撞进行测试

Actors to Ignore:忽略的Actor数组

Draw Debug Type:射线显示的类型

Ignore Self:是否忽略自己

Out Hit :返回碰撞到的物体

Return Value:返回有没有碰到物体,返回值为bool值

注意:Trace Channel 检测通道,该节点中默认的有两个Visibility 及 Camera,这两个通道选项与场景中的物体中,自身设置的可检测到的通道有关。

二、检测通道设置

第一种:使用系统自带的物体,如:Base下的立方体,物体本身带有检测通道的阻挡属性。也可以使用Custom更改碰撞预设值。

第二种:自己使用蓝图类创建的Actor,在蓝图类中,选中拖入的物体,在细节面板Collision属性中可以设置碰撞响应(忽略,重叠,阻挡),用来设置是否可以在对应通道中检测到。(追溯响应中设置,分别为Visibility及Camera)

   

将碰撞预设值,更改为Custom,就可以自己设置响应。只有阻挡被选中,才可以在通道中被检测到。

三、Draw Debug Type 属性

该属性是用来调试自用的,For One Frame :只存在一帧,效果就是可能看不到,也可能看到后立马消失。

For Duration:在一段时间内,射出的线可见,时间过后消失

Dersistent:持久存在的。

一般调试的时候,选择For Duration类型。

四、使用Break Hit Result节点将射线检测到的物体属性分解,方便后续节点调用此物体中的属性。

部分使用参数:Time:沿射线方向多长时间发生碰撞范围从[0,1],如果发生碰撞,则返回开始和结束的时间,如果没命中,则返回1.

Distance:返回射线起始点 到 检测到的物体(hit)的距离,如果存在检测本身,则返回0.

Location:检测到物体(hit)的世界坐标位置

HitActor:检测到的物体(hit)本身Actor

四、按下F键像摄像机前方发出射线检测。

1.使用节点:获取摄像机变量,F键,射线节点

2.射线节点需要Start 及End ,因为从摄像机开始向前方发射射线,所以获取摄像机Camera的世界坐标系中当前的位置坐标,使用GetWorldLocation节点获取的位置为Start。

使用 GetForwardVector节点 获取到像机当前的正前方向量,但是这个向量是单位向量,乘以一个参数,将正前方向量增大,使用Vector*float节点,两个向量相加 使用 vector + vector 节点 得到的结果为End。

3.连线

编译后运行,查看射线效果

四、其他射线节点

1.LineTraceForObjects 将沿给定的线执行碰撞追踪并返回追踪命中的首个物体(须与特定物体类型匹配)对Object Types 属性进行类型指定。

2.MultiLineTraceForObjects 将沿给定的线执行碰撞追踪并返回所有遭遇的命中,包含首次阻挡命中,只返回与特定物体类型相匹配的物体。

3.MultiLineTraceByChannel 将沿给定线条执行碰撞追踪,并返回所有遭遇的命中,包含首次阻挡命中,只返回对特定追踪通道响应的对象。

后面两个节点返回的都是数组形式,在给定的线上碰撞到的物体都会被保存到该数组中。

五、增加射线检测通道

1.在世界大纲视图,工具栏选择编辑/项目设置。选择引擎中的Collision。

  

2.选择后,在显示的界面,有两个选项分别为Object Channels 和 Trace Channels ,分别对应两种不同的节点,现在只在Trace Channels中增加新的通道,点击新建踪迹通道,进行命名,及默认的被检测方式。创建完成后,就能在LineTraceByChannel中通道显示,并且在蓝图类中选中显示的物体,要设置好Collision面板中的通道检测方式。

  

  

  • 13
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值