脚步声的BUG修复——Unity随手记(2021.1.24)

在Unity中遇到脚步声不正常的问题,通过调整射线的layermask和maxDistance参数解决了问题。发现射线的maxDistance设置为characterController.height可能在蹲下时无法检测到地面,而改为2f后蹲下能正常发声。理解到layermask仅限制检测的layer,而非阻止射线穿透其他layer。以后使用射线需要注意maxDistance的设定。
摘要由CSDN通过智能技术生成

今天实现的内容:

没关于有脚步声的问题,即使按照老师的办法将射线添加一个layermask并且将角色的layer设置为Player也没有用,这让我很疑惑。
可以观察到,如果没有为射线设置layermask,蹲下时射线打到的物体标签为Player。难道说设置了layermask射线碰到其它layer就无了?于是我大胆尝试了一下。
在这里插入图片描述
我把这个盒子的layer设置为Player,站着踩了上去,站着的时候踩在default上是可以发声的,射线也能检测到tag,但是踩在这个layer为Player的箱子上时却不能了。说明我的想法可能是对的。也就是说,射线遇到Player这个layer就不见了。
然而互联网上没有佐证我的猜测的。
直到我把射线的maxDistance的实参,我之前用的characterController.height,改成了2f,奇迹发生了,蹲下居然能发声了。但是我想不通为什么。characterController.height这个参数即使蹲下了也应该有0.8f的值,为什么maxDistance改成2f就可以了?我改成1.5f试了一下,还是可以,1f就不行了。1.2f时出现了站着没声音但是蹲下有声音的情况。我猜测可能是对于蹲下来说,0.8f还是太小了,射线不足以抵达地面。
这个问题就这样结了把。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值