温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:02
大家好,我是小郭,在上一集中我们一起实现了角色下蹲的功能,那今天我将会分享给大家,角色下蹲后穿过隧道时怎样才不会出现穿模的现象?好,我们马上开始,在这里我默认大家已经实现了角色下蹲的功能,那如果有不清楚的小伙伴们可以去翻我的博客,或者我之前的视频,那代码已经上传到我的博客了,博客地址就在我的个人简介那里。好,首先我们先搭建一个简易的隧道。我们先创建一个空物体,我这里命名为cafe。然后在空物体下分别创建3个Q作为顶部,左右两边的墙。好,搭建完后,我们选中空物体cafe,把空物体的所有节点都给他一个layer。
01:01
是用于代码实现那个实时检测碰撞的。然后我们双击打开角色的脚本,那在原有的基础上,我们再声明两个变量,一个是角色头顶是否存在障碍物的布尔类型,一个是障碍物的laymash。然后我们来到下蹲的方法,首先我们需要拿到角色头顶上的点,那这个点怎么拿?很简单,其实角色的position一般是在人物的脚底下,那我们用角色的高度乘以向量的Y轴,再加上position的位置,那就可以得到了。然后我们使用物理引擎的overlap sc方法就可以获取到角色头顶上碰撞到的障碍物,那这个方法它有三个参数,第一个就是碰撞的点,那我们就把角色头顶的那个点给他就行了,那第二个参数就是检测的半径,我们这里直接给角色控制器的那个半径就行了。
02:09
第三个就是障碍物的内尔。后面我加了个点点left是什么意思呢?因为角色的头顶可能有多个障碍物,但我们不需要管角色头顶到底碰撞了哪些障碍物,只要他有障碍物碰到那就行了,而那就是代表它碰撞到的物体的个数,那只要不等于0,那就代表角色头顶是存在障碍物的。好,接下来我们把本来下蹲的判断改造一下。第一种情况,角色头顶没有任何障碍物的,并且玩家按下了空格键时,角色就下蹲。那第2种情况,角色头顶存在障碍物,那无论玩家是否按下空格键,那角色都应该是处于下端的,其他情况都是站立了。
03:08
到这里代码就搞定了。我们去验证一下,在这里由于角色还没有配备完整的动画,所以角色还没有下蹲,但大家可以看到,当角色进入隧道后,角色控制器的那个框框,它是一直蹲下的,所以没有发生任何穿摩的现象,证明我们是成功的。在这一期我们实现了实时检测功能,防止出现穿模的现象。那下一期我们一起来为角色配备动画,包括下蹲、蹲着、蹲着行走,还有重新站立的动画。好,我是小郭,期待大家的点赞关注我们,下期见。
我来说两句