今天,我们就来聊聊如何在Unity中使用CharacterController组件,让角色能够灵活移动,在游戏世界里像风一样自由奔跑吧。
废话不多说,走,让我们马上来一探究竟!
目录:
1.准备模型
2.动画的处理
3.为角色添加CharacterController组件
4.编写移动功能的脚本
5.测试和运行
--------------------
一.准备模型
这里我已经搞定了模型和动画,都准备好啦!要是有小伙伴还不太明白怎么操作,可以去看看我之前发的那个“导入模型”的视频,视频的链接我会放在文章最后,点击连接打开在我的抖音或者其他平台连接的个人主页上能找到。好,我们先来第一步,把主角拖到我们的开发场景里去。
二.动画的处理
1.刚弄进来的动画可能得调调设置。我们先选中那个动画,然后点一下“Rig”,接着把站立和跑步的动画类型改成“人形”(Humanoid)的,这样就能更贴合角色的动作了。
2.接下来,我们得把跑步动画挑出来,然后点选“Animation”这个选项。记得把那个循环播放(Loop Time)的勾给打上,这样动画就能无限循环播放了。
3.我们先在Assets文件夹里头新建一个空文件夹,给它起个名字叫做“Animation Controllers”,当然啦,你也可以按自己的喜好来命名。这个文件夹就是用来放动画控制器的。
4.在Assets文件夹里,用鼠标右键点一下,然后找到“Animation Controllers”。接着点一下“Create”,在弹出的菜单里选择“Animator Controller”,这样就能创建一个新的动画器了。
5.选好你刚刚创建的Animator Controller,然后按住鼠标左键,把它拖拽到我们的主角模型上面去。这样就能将动画控制器应用到角色上了。
6.双击打开你建好的那个动画器。然后,把我们准备好的“站立动画”和“跑步动画”拖进去。这样就能在动画器里设置这些动画了。
7.现在我们来设置动画之间的过渡。分别选中“站立动画”和“跑步动画”,然后右键点击它们,从弹出的菜单里选择“Make Transition”。这样就能创建一个动画过渡了,也就是让角色可以从站立状态切换到跑步状态,反过来也行。
8.接着为“站立动画”和“跑步动画”创建动画过渡条件
首先,得给动画创建一个布尔变量,这个变量就是用来控制我们啥时候切换动画的。
接下来,选中动画之间的过渡线,然后给这条线添加上刚才创建的变量。设置一下,当Run变量是true的时候,角色就切换到跑步动画;当Run变量是false的时候,角色就变回站立状态。
最后,记得把那个“Has exit time”(动画退出时间)的勾去掉。因为我们需要的是实时切换动画,不需要设置退出时间。
三.为角色添加CharacterController组件
我们先选中角色,然后给角色加上一个“CharacterController”组件。这个组件是用来控制角色移动和碰撞检测的。加上组件之后,我们得调整一下它的参数,主要是那个碰撞框,要让它尽量贴近角色的模型,这样碰撞检测才能更准确。
四.编写移动功能的脚本
1.在项目的Assets文件夹内新建一个空文件夹,并将其命名为Scripts(你可以根据个人喜好来命名),这个文件夹将用于存放所有的脚本文件。
2.在Scripts文件夹中,创建一个新的C#脚本文件。
3.实现移动功能的代码
代码、模型和动画都已经上传到我的个人博客了,大家可以自行下载。
原创来源于-谷宇博客:https://www.biguyu.top/home
四.测试和运行
通过案例测试与运行,成功通过CharacterController组件的SimpleMove函数实现角色移动。