在动作游戏里,一个完美的“蹲下”不仅是躲避子弹的救命姿势,更是手感的第一印象。今天,我们就一起来看看如何在 Unity 中用 CharacterController 实现“一键下蹲、松键起身”的完整逻辑,十分钟让你的角色学会“猫腰”行走~!
为了减少篇幅,关于下蹲我打算分三篇文章,手把手详细带您一起实现一个完整的下蹲功能。第一篇文章分享下蹲功能,它到底怎么实现的。第二篇文章,我将会分享给大家,下蹲后穿过山洞或者隧道时,怎样才不会出现穿模的现象。第三篇文章,我将会给大家分享动画的配置,从蹲下、蹲着、蹲着行走,一直到站起来的动画组合实现,它到底怎么做。
目录:
1.角色移动功能
2.确认角色的位置和高度
3.编写下蹲功能的脚本
4.编写摄像机高度变化的脚本
5.测试与运行
--------------------
一.角色移动功能
在这里我已经默认大家通过CharacterController实现了角色移动的功能和动画,如果有不懂的小伙伴可以去查看我《【Unity3D实例-功能-移动】角色移动-CharacterController方式》的博客文章。
二.确认角色的位置和高度
首先初始化时,我们需要确认一下角色Transform的position的Y轴是否为0,我建议最好是设置为0,可以避免角色下蹲时陷入地面。我们再确认一下人物的高度,我这里的角色高度为1.6(CharacterController的控制器越贴近角色越好)。
三.编写下蹲功能的脚本
1.于 Assets 目录下新建 Scripts 文件夹(命名可自定义),并在其中创建对应 C# 脚本;随后将该脚本组件拖拽至场景内角色对象,完成挂载与初始化。
2.实现下蹲功能的代码
代码、模型和动画都已经上传到我的个人博客了,大家可以自行下载。
原创来源于-谷宇博客:https://www.biguyu.top/home
四.编写摄像机高度变化的脚本
实现摄像机跟随角色高度变化的功能代码
代码、模型和动画都已经上传到我的个人博客了,大家可以自行下载。
原创来源于-谷宇博客:https://www.biguyu.top/home
五.测试与运行
亲测过程:进入 Play Mode,按住Space键,观察角色高度实时降至 1.0 m,松开按键后高度恢复 1.6 m;确认基于 CharacterController 的下蹲逻辑运行无误。大家可以看到动态图片中,角色的控制器框框已经成功实现高度变化。 (在文章《【Unity3D实例-功能-下蹲】角色下蹲(三)动画配置》中,实现完整的动画效果)