00:02
哈喽,我是小郭,今天我想跟大家分享一下角色下蹲的功能,关于下蹲我打算做3期的视频,今天第一期视频我打算分享下蹲功能的实现方式,那第2期视频我将会分享给大家,角色下蹲后穿过山洞或者隧道时,它怎样才不会出现穿模的现象?那第3个视频我将会分享给大家。动画的配置,从蹲下、蹲着、蹲着行走到站起来的动画组合,它到底是怎么实现的?代码已经上传到我的博客了,点击我的头像,在个人简介那里可以找到我的博客地址。好,废话不多说,打开我们的Unity,在这里我已经实现了角色移动的功能。那要实现下端的功能,大致的思路是,当我们按下空格键时,我们需要重新设置角色的高度,并且摄像机的高度也要跟随着角色向下移动。
01:08
首先,初始化时,我们需要先确认一下角色transport的position的Y轴,它是否为0。呃,在这里我建议最好是设置为0,这样可以避免角色下蹲时陷入到地面上。然后我们再确认一下人物的高度,在这里我人物的高度是1.6。好看看好这两个词后,我们双击打开脚本。这里前面的3个参数是角色移动的变量,我就不多说了,不懂的小伙伴们可以去翻我之前的博客或者我之前的视频。要实现角色的下蹲,我们需要声明两个变量,那第一个变量就是下蹲后角色的一个高度。那第二个变量是角色站立的时候,它本身的一个高度。
02:03
然后我们在大函数里面初始化这两个值。站立的高度,我们直接给他角色控制器的高度那就可以了,那下蹲的高度,我这里直接给他个1,那大家也可以。斟酌着自己自己试一下。接着我新建一个方法来写下端的代码。代码其实也不难,当玩家按下空格键时,我们就把蹲下的高度赋予给控制器,反之,就把本来站立的高度重新赋予给控制器。那控制器的高度变化后,我们也需要更新控制器的中心点,不然的话控制器就会浮动在空中,那中心点怎么去算呢?我们使用控制器的高度除以一半。然后乘以那个向量为Y就可以了,感觉很抽象是吧?
03:02
我们一起来看一看这个图。当站立的时候,我这里的人物高度是1.6,也就是说中心点是0.8的位置。那中心点的位置是角色脚底的点,到中心点那刚好就是总高度的一半,蹲下也是人物的总高度是1,那中心点就是0.5的位置,也是刚好总高度的一半,那大家就能听懂了吧。到这里我们下端的功能就已经实现了,我们还需要把摄像机的高度也跟着改变。我们双击打开摄像机的脚本。在这里我实现了一个简单的摄像机跟随,但我还是推荐大家使用官方的那个s camera插件,它功能比较丰富。好,同两个参数是摄像机跟随角色的,我们不用管它。
04:00
我们需要定义两个参数,一个是我们需要获取到角色控制器,那第二是要计算出摄像机和角色控制器之间的一个差距。在大函数里面,我们首先获取到character controller.接着然后控制器跟摄像机的那个差距是用摄像机的Y轴减去控制器的高度,那就能得到了,然后当前的控制器高度加上那个差距就是摄像机的高度了。然后我们重新把新的高度赋予给摄像机,那就可以了,到这里我们的代码已经全部搞定了,我们去试试看,在这里我们还没有实现角色的动画效果,但是大家可以看到那个。角色人物控制器的绿色框框,它已经成功的,所以改变了高度,摄像机也跟着改变了高度,所以我们的下蹲功能是成功的,这一期我们成功实现了角色下蹲的功能,那下一期我们一起来看看角色下蹲后穿过隧道而不被穿模,它到底是怎么实现好,我是小郭,期待大家3年,我们下期见。
我来说两句