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

今天实现的内容:

没关于有脚步声的问题,即使按照老师的办法将射线添加一个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还是太小了,射线不足以抵达地面。
这个问题就这样结了把。


BUG以及缺陷:


值得注意的:

射线的layermask确实是只看mask里面的layer,不是说碰到以外的layer射线就消失。将射线maxDistance改为10f,再次站上那个被我把layer改为Player的盒子上,还是会出现声音的,之前没有声音还是因为maxDistance太小了,够不到他下面的地板。
以后用射线,注意一下maxDistance就可以了。
其实我觉得蹲下没有声音其实也可以,就当成是潜行状态嘛!


猜你喜欢

转载自blog.csdn.net/qq_37856544/article/details/113098856
今日推荐