UnrealEngine摸索(一)——Static Mesh Actor不会阻挡可见性查询解决方法

实际开发中遇到题目所述的问题,对解决方法进行记录



问题描述

博主在开发FPS游戏过程中,使用 LineTraceSingleByChannel 进行可视性检测,即其参数 Channel = Visiblity,对于命中的第一个物体应用相应的处理流程,比如命中一个墙体,会在墙体上生成一个贴花,而命中一个敌人的人物,则造成伤害、播放相应的收击动画、产生粒子特效等反馈。

对于下面一个墙体的Static Mesh Actor,其并不会对 LineTraceSingleByChannel 的可视性检测进行阻挡,可以看到该Static Mesh有简单的立方体碰撞且碰撞预设(Collision Presets)被设置为BlockAll。

而我们射击后发现并没有阻挡该可视性检测射线,且敌人AI的视力感知也不会被该Static Mesh Actor影响(就是躲在墙后敌人也能发现我们)。


解决方案

在Static Mesh里更改Collision Trace Behavior,默认为 Project Default,这里改为 Use Simple Collision As Complex,表示对于所有的场景查询和碰撞检测使用简单的形状。

这里使用 Project Default 表示使用工程设置中的默认值,下图可以看到当前工程的默认设置为 Simple And Complex,表示对于常规的场景查询和碰撞检测使用简单形状,对于复杂的场景查询使用复杂形状,这里如果我们将其改为 Use Simple Collision As Complex 也是可以正常阻挡的。But Why?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值